Gradle build.gradle配置
每个构建脚本build.gradle都有一个默认的Project的实例,脚本中所有的操作都在project实例的作用域
1 项目信息
项目信息指项目的坐标
//group version为project的方法
//项目名称name在settings.gradle中
group 'com.kepus'
version '1.0-SNAPSHOT'
2 插件
插件带有任务/task,比如:war插件有war任务,war任务又依赖的compileJava, processResouces, classes任务
//apply为project的方法
apply plugin: 'java' //java插件
apply plugin: 'war' //war插件
3 JDK版本
//sourceCompatibility 为project实例的属性
sourceCompatibility = 1.8
4 仓库地址
按照配置顺序依次取
gradle 仓库地址介绍:https://blog.csdn.net/x_iya/article/details/75040806
//repositories是project一个方法,闭包作为参数
repositories {
//本地仓库,地址是:D:/application/without/apache-maven-3.3.9/repo
mavenLocal()
//应该是maven私服,此处设置为ali的,地址是url
maven{
url "http://maven.aliyun.com/nexus/content/groups/public"
}
//远程仓库,地址是https://repo1.maven.org/maven2
mavenCentral()
}
5 依赖配置:
业务代码:编译/compile和运行runtime 2个阶段
测试代码:编译/compile和运行runtime 2个阶段
compile依赖的runtime一定依赖, runtime依赖的compile不一定依赖
业务代码依赖测试代码一定依赖,测试代码依赖的业务代码不一定依赖
//dependencies是project一个方法,闭包作为参数
dependencies {
//2中依赖添加方式
testCompile group: 'junit', name: 'junit', version: '4.12'
//依赖冲突, logback依赖slf4j 1.7.25, log4依赖1.6.0 时 gradle会自动依赖最新版本
compile "ch.qos.logback:logback-classic:1.2.3"
}
6 多项目构建
settings.gradle作用就是用于多项目构建
多项目构成:allProjects = root项目+各子项目
构建补充
每个构建(build.gradle)至少一个项目,每个项目一个或多个任务
项目/Project
一个项目代表一个组件(jar/war包),构建启动后Gradle会根据build.gradle实例化一个org.gradle.api.Project类
project属性
group/name(artifact)/version
属性的其他设置方法:ext或者直接在gradle.properties里面读取(一定是此名称)
project方法
apply 应用插件
dependencies 添加依赖
repositories 添加仓库
task 定义任务
任务/Task
任务是最小的工作单元,每个任务由动作和任务依赖组成,对应类 org.gradle.api.Task
Task方法
dependsOn 添加依赖
doFirst/doLast 定义动作 (任务可以看做一个动作列表)
生命周期
1. 初始化: 根据 build.gradle生成project
2. 配置: 生成task的依赖顺序和执行顺序 注意划分配置代码和执行代码
3. 执行: 执行task的动作代码