在这篇文章中,我们将带领您了解Maven配置文件相当于Gradle的全貌,包括maven配置文件类型包括哪些的相关情况。同时,我们还将为您介绍有关(简&繁)Gradle配置文件--简、CentOS7配
在这篇文章中,我们将带领您了解Maven配置文件相当于Gradle的全貌,包括maven配置文件类型包括哪些的相关情况。同时,我们还将为您介绍有关(简&繁)Gradle配置文件--简、CentOS7配置gradle,或配置maven、Gradle 中引用外部Gradle脚本,相当于import/include功能、Gradle 使用私有maven库配置的知识,以帮助您更好地理解这个主题。
本文目录一览:- Maven配置文件相当于Gradle(maven配置文件类型包括哪些)
- (简&繁)Gradle配置文件--简
- CentOS7配置gradle,或配置maven
- Gradle 中引用外部Gradle脚本,相当于import/include功能
- Gradle 使用私有maven库配置
Maven配置文件相当于Gradle(maven配置文件类型包括哪些)
我正在尝试在我的Spring Boot项目构建中实现一个简单的方案:包括/排除依赖项以及根据环境打包战争或jar。
因此,例如,对于环境dev
包括devtools和package jar,对于prod
包war等。
我知道它不再是基于XML的配置了,我基本上可以在build.gradle中编写if语句,但是有没有推荐的方法来实现这一点?
我可以声明一些常见的依赖项并将它们引用在一个文件中,而不是创建多个构建文件吗?
是否有最佳实践,可以根据构建目标环境更改构建配置?
答案1
小编典典ext {
devDependencies = [‘org.foo:dep1:1.0’, ‘org.foo:dep2:1.0’]
prodDependencies = [‘org.foo:dep3:1.0’, ‘org.foo:dep4:1.0’]
isProd = System.properties[‘env’] == ‘prod’
isDev = System.properties[‘env’] == ‘dev’
}
apply plugin: ''java''dependencies { compile ''org.foo:common:1.0'' if (isProd) { compile prodDependencies } if (isDev) { compile devDependencies }}if (isDev) tasks.withType(War).all { it.enabled = false }
(简&繁)Gradle配置文件--简
标签: Gradle
[TOC]
Gradle功能很强大,也非常的灵活,但是我学习了很多资料之后发现,对于开发人员来说,很多内容并非我必须要了解的,虽然技多不压身,但是暂时用不到的知识遗忘速度也是飞快的,还是先解决最主要的问题,用Gradle来代替Maven管理自己的java项目。 使用Gradle管理项目的最主要的是学会Gradle的配置文件编写,接下来将自己对于Gradle配置文件的理解记录下来备查。
配置文件分类
配置文件分为三种
- build.gradle 主要配置文件,关于项目的依赖关系主要在该文件中配置
- settings.gradle 项目信息文件,项目的一些可在这里配置,比如项目名称、子项目信息
- xxxxx.gradle 模块配置文件,可将冗长的配置信息分块进行配置,比如依赖的版本统一管理等
配置项类举
build.gradle
1、 buildscript
作用:gradle的自身的资源配置,比如仓库信息、依赖信息、插件信息等 Tips:该配置项应放在配置文件的最开头位置
buildscript {
repositories {
maven { name "Alibaba" ; url ''https://maven.aliyun.com/repository/public'' }
maven { name "Bstek" ; url ''http://nexus.bsdn.org/content/groups/public/'' }
maven { name "M2" ; url ''https://plugins.gradle.org/m2/'' }
}
}
2、 plugins
作用:插件集合配置 Tip:该配置项位置应放在除buildscript配置之外的所有配置项的前面
plugins {
id ''org.springframework.boot'' version ''2.1.3.RELEASE''
id ''java''
}
3、apply
作用:包含配置插件、引用其他配置文件 Tips:该配置项位置应放在除buildscript、plugins配置之外的所有配置项的前面,没有plugins则保证在buildscript之后
//配置插件
apply plugin: ''io.spring.dependency-management''
//引用配置文件
apply from: ''config.gradle''
4、allprojects
作用:多模块项目结构中对子模块的相同配置集中配置,包括repositories、dependencies等
allprojects {
repositories {
maven { name "M2" ; url ''https://plugins.gradle.org/m2/''
}
dependencies {
compileClasspath ''org.springframework.boot:spring-boot-starter-web''
testImplementation ''org.springframework.boot:spring-boot-starter-test''
}
}
另外还有subprojects也是配置多模块项目的关键配置,两者的区别是allprojects是包括rootProject的subprojects是不包括rootProject的,task遍历顺序为allprojects > subprojects > Child Project
5、repositories
作用:配置依赖仓库信息,常用阿里云的仓库,直接复制示例代码即可
repositories {
mavenLocal()
maven { name "Alibaba" ; url "https://maven.aliyun.com/repository/public" }
maven { name "Bstek" ; url "http://nexus.bsdn.org/content/groups/public/" }
}
6、dependencies
作用:依赖包的配置 依赖方式:在2.x版本和3.0以后的版本更换了关键字 | 2.x | 3.0 OR later | 描述 | | -------- | ----- | :---- | | | compile | implementation,api |编译以及运行时都需要| | provided | compileOnly、[ compileClasspath ] |仅编译需要| | apk | runtimeOnly |仅运行时需要| | testCompile| testImplementation | 测试编译时使用 | Tips:常用的就是implementation、testCompile 和 compileOnly. 网上很多说implemention是隐藏内部引用的作用,但是不必深究,用就可以了,出现问题再来解决,多数情况下是不会遇到问题的
冲突处理:
- exclude 作用:排除依赖
//单独排除某个模块中的依赖
compile(''com.h6ah4i.android.widget.advrecyclerview:advrecyclerview:0.11.0@aar'') {
exclude group: ''com.android.support''
}
// 排除所有子依赖中的support依赖
configurations {
all*.exclude group: ''com.android.support''
}
- transitive 作用:配置依赖传递
//依赖同于没有使用 exclude 排除依赖 ,每个包的依赖项都会被递归分析并添加进来。
transitive = true
//则依赖关系同于用 exclude 排除依赖。
transitive = false
- force 作用:强制版本
// 强制使用 support-v4 26.1.0版本
compile(''com.android.support:support-v4:26.1.0'') {
force = true
}
7、task配置
作用:配置自定义任务,例如编译任务,将依赖、资源文件与项目分离 Tips:这块内容较为复杂,单独主题进行分析
8、定制项目
sourceCompatibility = 1.8 version = ''1.0''
settings.gradle
1、pluginManagement(非必需)
作用:插件库管理 Tips:放在配置文件最前端
pluginManagement {
repositories {
//这个就是默认的插件库,一般可不配置,除非有更好更快的插件库
gradlePluginPortal()
}
}
2、settingsEvaluated(非必需)
作用:settings.gradle初始化完成的回调函数,用于做些初始化工作
gradle.settingsEvaluated {
println "settings初始化完成"
}
3、projectsLoaded(非必需)
作用:所有项目载入完成回调函数
gradle.projectsLoaded {
Gradle gradle ->
println "子项目初始化完成"+gradle
}
4、自定义初始化方法(非必需)
//创建自定义方法
def customInit(){
println"start init"
//做自己想要做的初始化
println"end init"
}
//settings.gradle加载的时候,会执行这个方法
customInit()
5、rootProject.name(必需)
作用配置项目名称
rootProject.name = ''test-core''
6、include(重要)
作用:配置多个项目
include '':app'','':core''
CentOS7配置gradle,或配置maven
借鉴博客:
https://www.cnblogs.com/imyalost/p/8746527.html
特简单,不多说了,自己看
1、下载gradle4.6版本:wget https://downloads.gradle.org/distributions/gradle-4.6-bin.zip
2、解压gradle-4.6-bin.zip:unzip -d /usr/local/dev gradle-4.6-bin.zip
(-d后面是要解压的路径)
3、在/etc/profile文件里配置gradle环境
4、重新加载修改的文件,使之生效命令:source /etc/profile
5、查看安装的gradle版本,有则证明安CentOS7服务器装配置gradle环境成功了
》》》》》2、安装配置maven》》》》》》》》》》》》》》
1、我用的是maven-3.6版本,我的网盘安装包地址:
链接:https://pan.baidu.com/s/1_Y_mxXUcjWgNOghvGxHoWg
提取码:lc9w
复制这段内容后打开百度网盘手机App,操作更方便哦
2、把maven的安装包丢到:/usr/local/dev/maven目录中并解压
#解压命令
tar -xcvf apache-maven-3.6.0-bin.tar.gz
3、配置maven环境:vi /etc/profile
4、重新加载资源文件:source /etc/profile
5、查看maven配置是否成功:mvn -version
搞定啦。。。。。。。。。。。。。。。。。。。。。。。
嗯
Gradle 中引用外部Gradle脚本,相当于import/include功能
原文地址 Configuring the project using an external build script
You can configure the current project using an external build script. All of the Gradle build language is available in the external script. You can even apply other scripts from the external script.
Configuring the project using an external build script build.gradle
apply from: ''other.gradle''
other.gradle
println "configuring $project"
task hello << {
println ''hello from other script''
}
Output of gradle -q hello
configuring root project ''configureProjectUsingScript'' hello from other script
Gradle 使用私有maven库配置
私有本地库配置
repositories {
maven {url ''file://'' + new File(System.getProperty(''user.home''),''.m2/repository'')}
}
或者
repositories {
mavenLocal()
}
私有远程库配置
repositories {
maven {url ''http://maven.uwo.com/content/repositories/weimob/''}
}
关于Maven配置文件相当于Gradle和maven配置文件类型包括哪些的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于(简&繁)Gradle配置文件--简、CentOS7配置gradle,或配置maven、Gradle 中引用外部Gradle脚本,相当于import/include功能、Gradle 使用私有maven库配置等相关内容,可以在本站寻找。
本文标签: