赞
踩
在D盘创建一个gradle文件夹并进入其中,创建一个文件,名称为build.gradle
,其中的内容为
task helloWorld{
doLast {
println 'Hello World!'
}
}
然后进入到这个目录当中,执行以下命令
gradle -q helloWorld
等待一会(项目构建)之后,控制台会输出Hello World!
。
上面命令通过-q定义可选命令行选项quiet,告诉Gradle只输出该task相关的信息。如果不加-q则会输出项目构建的一些信息,如下图所示
在Gradle的DSL当中,task(helloWorld
)和action(doLast
)是最重要的语言。名字为doLast的action几乎自表达了它的含义。它是task执行的最后一个action。
在build.gradle
文件中添加以下内容
task helloWorld { doLast{ println 'Hello World!' } } task startSession { doLast{ chant() } } def chant() { // 使用Ant的任务echo ant.echo(message: 'Repeat after me...') } // 使用Groovy在java.lang.Number中扩展的times方法创建3个新的task.Groovy自动地暴露一个隐式变量it来指定循环迭代的次数 3.times { task "yayGradle$it" { doLast{ println 'Gradle rocks' } } } yayGradle0.dependsOn startSession yayGradle2.dependsOn yayGradle1,yayGradle0 task groupTherapy(dependsOn: yayGradle2)
再执行以下命令:
gradle groupTherapy
结果如下
这里首先执行了startSession
任务,然后依次执行了yayGradle0
、yayGradle1
、yayGradle2
。
以上代码首先在chant方法中一行了对Ant任务的调用,而接下来yayGradle
等任务采用动态任务的含义,最后引入了dependsOn
关键字,这个关键字用于说明task之间的依赖关系。Gradle会确保被依赖的task总会在定义该依赖的task之前执行。
执行命令
gradle -q tasks
输出结果如下所示
可以看到这里包含了一些提供提供的任务,但是没有我们上面创建的任务。在上面的命令后面加上--all
再执行。
gradle -q tasks --all
结果如下
这里包含了我们创建的任务。同时这里Gradle提供了一个任务组的概念。你可以把它看作是多个task的集群。每个构建脚本都会默认暴露Help tasks
任务组,如果某个task不属于一个任务组,就会出现在Other tasks
当中,比如我们创建的groupTherapy
任务。
gradle yayGradle0 groupTherapy
这里需要注意的是,任务通常只会执行一次,无论它们是在命令行中指定的还是作为另一个任务的依赖。
Gradle最有用的特性之一就是能够以驼峰式的缩写在命令行上执行任务。比如上面的命令可以缩写为以下方式
gradle yG0 gT
需要注意的是,任务名字的缩写必须是唯一的。比如在上面的文件当中添加以下内容
task generateTests {
doLast{
println 'generateTests!'
}
}
再执行缩写的命令,报错信息如下
* What went wrong:
Task 'gT' is ambiguous in root project 'gradle'. Candidates are: 'generateTests', 'groupTherapy'.
从错误信息不难看出,这里缩写产生了歧义。
执行以下命令
gradle groupTherapy -x yayGradle0
可以看出,在上面通过命令-x排除了任务yayGradle0。
在控制输入命令查看帮助选项
gradle --help
此时就可以获取到常见参数的列表,比如-q开启安静模式,只打印错误日志
-q, --quiet Log errors only.
比如-x 用于指定某个任务被排除执行
-x, --exclude-task Specify a task to be excluded from execution.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。