Settings 文件
- 在 Gradle中,定义一个设置文件,用于初始化以及工程树的配置。设置文件的默认名字是 setting.gradle,放在根工程目录下。一个子工程只有在 Settings 文件里配置了 Gradle 才会识别,才会在构建的时候被包含进去,也可以指定子项目的路径,如果不指定,默认目录是其同级目录。
include ':app'
Build文件
- 每个Project 都会有一个 Build 文件,该文件是该 Project 构建的入口,可以在这里针对 Project 进行配置,比如配置版本,需要哪些插件,依赖哪些库等。
-既然每个 Project 都会有一个 Build 文件,那么 Root Project 也不例外,Root Project 可以获取到所有的 Child Project,可以统一配置
/**
* 所有子类统一配置
*/
subprojects {
repositories {
google()
jcenter()
}
}
/**
* 所有子类和 Root Project统一配置
*/
allprojects {
repositories {
google()
jcenter()
}
}
Projects以及 tasks
- 一个项目又包含很多个 Task,也就是说每个 Project 是由多个 Task 组成的。那什么是 Task 呢?Task 就是一个操作,一个原子性的操作,比如打个 jar 包,复制一份文件,编译一次代码等等,这就是一个 Task。
/**
* 先声明,这是一个 task
*/
class task1 extends DefaultTask{
/**
* 方法和类的名字一致
* @return
*/
def task1(){
def a = 999999
def b = "hello"
def c = "a=${a+100666600}, b=${b+" word!"}"
println c
}
}
/**
* 再项目调用
*/
project.tasks.create("task1", task1)
自定义属性
- Project 和 Task 都允许用户添加额外的自定义属性,要添加额外的自定义属性,通过对应用的 ext 属性即可实现。添加之后可以通过 ext 属性对自定义属性读取和设置,如果要同时添加多个自定义属性,可以通过 ext 代码块:
- 相比局部变量,自定义属性有更为广泛的作用域,你可以跨 Project,跨 Task 访问这些自定义属性。只要你能访问这些属性所属的对象,那么这些属性都可以被访问到。
- 自定义属性不仅仅局限在 Project 和 task 上,还可以应用在 SourceSet 中,这样等于每个 SourceSet 又多了一个可供配置的属性。
/**
* 自定义一个 Project 属性
*/
ext.age = 22
/**
* 自定义属性块,
* 也可单独抽出放在一个.gradle文件中引用
*
*/
ext {
phone = "1582016776"
address = "上海松江区"
}
//输出
println "年龄是:${age}"
println "电话是:${phone}"
println "地址是:${address}"
脚本即使代码,代码也是脚本
- 虽然我们在一个 Groovy 文件中写脚本,但是我们写的是代码,在这些脚本文件上,可以定义 Class、内部类、导入包、定义方法、常量、接口、枚举等等。