gradle 笔记(二)
下面记录一些project和 task的入门
每一个 project 是由一个或多个 tasks 构成的. 一个 task 代表一些更加细化的构建. 可能是编译一些 classes, 创建一个 JAR, 生成 javadoc, 或者生成某个目录的压缩文件.首先, 我们先来看看定义构建里的一些简单的 tasks. 以后的章节会讲解多项目构建以及如何通过 projects 和 tasks 工作.
众所周知我们可以通过gradle命令来运行一个gradle构建,gradle命令会在当前路径下寻找一个叫做build.gradle 的文件,它就是所谓的构建脚本,但是严格意义上讲它是构建配置脚本,其实是啥无所谓,我们也不用纠结名字的含义。在这个脚本里定义了一个project以及所属的一些tasks。那么下面我们就开始构建第一个task
task naonao {
doLast{
println("Hello Naonao!")
}
}
然后在终端输入 gradle -q naonao
gradle -q naonao
得到输出
Hello Naonao!
在上面的例子里我们定义了一个叫做naonao的task,并有一定的操作
-q 就是quiet 模式, 并不会打印log message 如果我们去掉这个参数的话
gradle naonao
得到
:naonao
Hello Naonao!
BUILD SUCCESSFUL
Total time: 1.088 secs
会看到 log message 被打印出来
doLast 又是什么呢?恕我先买一个关子,后续章节会有详细介绍,
那么有没有更简洁的方法创建task呢,当然有
task naonao << {
println("Hello Naonao!")
}
另外 task 里也可以构建脚本代码 我们举两个简单的例子
task upper << {
String originString = "naonao is good cat"
println(originString)
println(originString + " and a beaty")
}
得到输出
naonao is good cat
naonao is good cat and a beaty
task count << {
4.times {println("$it")}
}
得到输出
0
1
2
3
下面简单记录一下task的依赖关系
熟悉maven的朋友都知道 可以在项目里添加依赖,gradle的task 当然也可以
task naonao <<{
println("Hello Naonao!")
}
task upper(dependsOn: naonao) << {
String originString = "naonao is good cat"
println(originString)
println(originString + " and a beaty")
}
得到输出
Hello Naonao!
naonao is good cat
naonao is good cat and a beaty
upper 依赖于 naonao 所以在执行upper的时候 naonao会优先被执行作为启动upper的先决条件,需要指出的是,task创建的顺序并不会影响task的依赖
task upper(dependsOn: 'count') << {
String originString = "naonao is good cat"
println(originString)
println(originString + " and a beaty")
}
task count << {
4.times {println("$it")}
}
得到输出
0
1
2
3
naonao is good cat
naonao is good cat and a beaty
动态创建任务
4.times {count->
task "naonao$count" << {
println("naonao$count is a good boy")
}
}
gradle -q naonao0
naonao0 is a good boy