ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

gradle学习系列

2021-12-15 21:33:36  阅读:144  来源: 互联网

标签:执行 task 系列 helloWorld gradle 学习 任务 Gradle


开始使用gradle

安装好gradle之后,在控制台输入以下命令

gradle -v

在这里插入图片描述
在D盘创建一个gradle文件夹并进入其中,创建一个文件,名称为build.gradle,其中的内容为

task helloWorld{
	doLast {
		println 'Hello World!'
	}
}

然后进入到这个目录当中,执行以下命令

gradle -q helloWorld

等待一会(项目构建)之后,控制台会输出Hello World!
在这里插入图片描述
上面命令通过-q定义可选命令行选项quiet,告诉Gradle只输出该task相关的信息。如果不加-q则会输出项目构建的一些信息,如下图所示
在这里插入图片描述
修改build.gradle文件内容如下

task helloWorld {
	println 'Hello World!'
}

执行结果与上面一致,其实这两种写法都是一个意思。在Gradle的DSL当中,task(helloWorld)和action(doLast)是最重要的语言。名字为doLast的action几乎自表达了它的含义。它是task执行的最后一个action。
build.gradle文件中添加以下内容

task helloWorld {
	println 'Hello World!'
}

task startSession {
	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" {
		println 'Gradle rocks'
	}
}

yayGradle0.dependsOn startSession
yayGradle2.dependsOn yayGradle1,yayGradle0
task groupTherapy(dependsOn: yayGradle2)

再执行以下命令:

gradle groupTherapy

结果如下
在这里插入图片描述
这里首先输出了’Hello World!’,说明执行了helloWorld这个任务。接下来执行了startSession任务,然后依次执行了yayGradle0yayGradle1yayGradle2
以上代码首先在chant方法中一行了对Ant任务的调用,而接下来yayGradle等任务采用动态任务的含义,最后引入了dependsOn关键字,这个关键字用于说明task之间的依赖关系。Gradle会确保被依赖的task总会在定义该依赖的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 {
	println 'generateTests!'
}

再执行缩写的命令,报错信息如下

* What went wrong:
Task 'gT' is ambiguous in root project 'gradle'. Candidates are: 'generateTests', 'groupTherapy'.

在这里插入图片描述
从错误信息不难看出,这里缩写产生了歧义。

标签:执行,task,系列,helloWorld,gradle,学习,任务,Gradle
来源: https://blog.csdn.net/m0_37607945/article/details/121960675

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有