----《Android Gradle 权威指南》学习笔记
总目录:Gradle 学习系列 -- 目录
上一篇:Gradle 构建脚本基础:Build 文件
下一篇:Gradle 构建脚本基础:任务依赖
1 Projects 以及 tasks
1.1 在 Gradle 中,可以有很多的 Project,可以定义一个 Project 用于生成一个 jar, 也可以定义另一个 Project 用于生成一个 war 包等。其实,一个 Project 就是一个业务模块,可以根据项目的情况进行抽象和归类,最后这一个个的 Project 组成了整个的 Gradle 构建。
1.2 比如在 AndroidStudio 的项目中,Gradle 的 Projects 就是根 Project 和 一个个的 Module。
1.3 从编程角度来看,Projects 就是一个个独立的模块。设计好一个工程的结构,在代码中就能够做到低耦合,高内聚。
1.4 一个 Project 又包含了多个 Task,也就是说每个 Project 是由多个 Task 组成的。Task 就是一个操作,一个原子性的操作。比如:打个jar包、复制一份文件、编译一次代码等。类似于:在一个业务模块(Project)中,有很多的函数(task)的原理。
2 创建任务
2.1 创建任务的示例如下:
task customTask() {
doFirst {
println("customTask -- doFirst")
}
doLast {
println("customTask -- doLast")
}
}
在命令行中执行命令:gradle customTask2
打印结果:
> Task :customTask
customTask -- doFirst
customTask -- doLast
示例里面的 task 看起来像是一个关键字,其实它是 Project 对象的一个函数,函数原型为 create(String name, Closure configureClosure)
。 customTask 是任务的名称,可以自定义。第二个参数是一个闭包,也就是大括号里面的内容。
2.2 还可以通过 TaskContainer 的方式创建任务。在 Gradle 里,Project 对象已经定义好了一个 TaskContainer,这就是 tasks 对象,举个栗子:
task customTask() {
doFirst {
println("customTask -- doFirst")
}
doLast {
println("customTask -- doLast")
}
}
tasks.create("customeTask2"){
doFirst {
println("customTask2 -- doFirst")
}
doLast {
println("customTask2 -- doLast")
}
}
在命令行中执行命令:gradle customTask2
打印结果:
> Task :customeTask2
customTask2 -- doFirst
customTask2 -- doLast
通过测试可知,上面两个任务的作用是一样的,只是创建任务的方式和任务的名称不一样。
网友评论