Gradle之尝试使用Gradle
每个Gradle构建都是以一个脚本开始的。Gradle构建脚本默认名字是 build.gradle。当在shell中执行gradle命令时,Gradle会去寻找名字是build.gradle的文件。如果找不到,就会显示一个帮助信息。
让我们在Gradle中实现经典的“Hello world!”例子。首先,你需要创建一个名字为build.gradle的文件。在文件中,定义一个独立的原子性工作。在Gradle的词汇中,叫作task(任务)。在这个例子中,task叫helloWorld。要打印信息“Hello World!”,需要使用Gradle的通用语言Groovy,将println命令添加到task的action(动作)doLast中。Groovy中的Println方法更简短,它相当于Java中的System.out.println方法。
task hellWorld{
doLast{
println 'Hello world!'
}
}
运行该task:
$ gradle -q helloWorld
通过 -q 定义可选命令行选项quiet,告诉Gradle只输出该task相关的信息。
在完全不需要了解Gradle的情况下,你已经开始使用Gradle的DSL了。task和action是这门语言重要的元素。名字为doLast的action几乎自表达了它的含义。它是task执行的最后一个action。Gradle还允许使用一种更精简的方式来指定相同的逻辑。使用左移符号 << 来简单地代表doLast。如:
task helloWorld << {
println 'Hello world!'
}
我们来看一个更高级的示例:
task startSession << {
chant()
}
def chant(){
ant.echo(message: 'Repeat after me ...') //1
}
3.times{
task "yayGradle$it" << { //2
println 'gradle rocks'
}
}
yayGradle0.dependsOn startSession
yayGradle2.dependsOn yayGradle1, yayGradle0 //3
task groupTherapy(dependsOn: yayGradle2)
一开始你可能没有注意到,这个清单中隐藏了很多高级特性。代码中引入了关键字dependsOn来说明task之间的依赖(3处)。Gradle会确保被依赖的task总会在定义该依赖的task之前执行。实际上,dependsOn是task的一个方法。这个后面再详细讲。
我们之前谈到的一个特性是Gradle和Ant有很好的集成(1处)。因为拥有对Groovy语言特性的完全访问权,你还可以使用chant()方法来打印消息。这个方法可以非常方便地在task中调用。每个脚本都带有一个ant属性,它赋予了直接访问ant任务的能力。在这个例子中,你可以使用Ant的任务echo打印出“Repeat after me”信息。
Gradle提供的一个漂亮的特性是定义动态task,这意味着可以在运行时指定它们的名字。你的脚本在循环(2处)中使用Groovy在java.lang.Number中扩展的times方法创建3个新的task。Groovy自动地暴露一个隐式变量 it 来指定循环迭代的次数。你使用这个计数器来构建task的名字。对于第一轮迭代,task可以叫作yayGradle0,然后 yayGradle1,yayGradle2。
现在运行:
$ gradle groupTherapy
注:你也许已经注意到例子中省去了quiet命令行选项,这表示运行该task时,会得到更多的信息。
转载于:https://my.oschina.net/fhd/blog/518248
上一篇: 前端数据浅拷贝和深拷贝
推荐阅读
-
Gradle之尝试使用Gradle
-
gradle配置 博客分类: gradle软件使用资料 gradle
-
gradle配置 博客分类: gradle软件使用资料 gradle
-
安卓开发之gradle应用(一)
-
Gradle使用手册 博客分类: android android
-
Java使用自动化部署工具Gradle中的任务设定教程
-
Java使用自动化部署工具Gradle中的任务设定教程
-
使用IDEA和Gradle构建Vertx项目(图文步骤)
-
AndroidStudio 使用过程中出现的异常(Gradle sync failed)处理办法
-
AndroidStudio 使用过程中出现的异常(Gradle sync failed)处理办法