首先学习下Task的基础内容。
查看任务
首先我们可以通过使用
./gradlew tasks
查看当前工程下的所有task以及它们各自的信息
新建任务
- 使用task函数
在xxx.gradle文件创建 task+任务名称的格式:
task helloTask
这样就创建了一个新的Task
这其实就是调用Project源码中Task方法
Task task(String name) throws InvalidUserDataException
还可以借鉴源码中方法打印出task中的内容
Task task(String name,Closure configureClosure)
例:
task helloTask{
println 'this is hello task.'
}
我们可以通过gradlew命令输出task中的内容:
./gradlew hellotask
- 使用TaskContainer容器
TaskContainer getTask();
通过容器来创建
Task create(Map<String,?> options,Closure configureClosure)
例:
this.tasks.create(name:'task1'){
println 'this is create task.'
}
这两种创建方式都没有区别,通过task函数创建的task最终还是会添加到TaskContainer容器中的。换而言之,一个TaskContainer可以有很多task。
下面了解TaskContainer中的常用方法
- 通过path路径查找task
//找不到后返回null
Task findByPath(String path);
//找不到后返回Exception
Task getByPath(String path) throws UnknownTaskException;
- 创建task
Task create(Map<String,?> options) throws InvalidUserDataException
Task create(Map<String,?> options,Closure configureClosure)
Task create(String name) throws InvalidUserDataException
- 代替已有task任务名
Task replace(String name);
<T extends Task> T replace(String name,Class<T> type);
不过现在使用override来代替replace方法
总的来说TaskContainer的作用就是就是查找和添加task,作用于gradle配置阶段
Task配置
- 在定义的时候就配置
task helloTask(group:'personal',description:'task learn'){
println 'this is hello task.'
}
- 创建代码块中添加配置代码,通过setxxx来操作
this.tasks.create(name:'task1'){
setGroup('personal')
setDescription('task learn')
println 'this is hello task.'
}
这样添加配置group的时候就会按照组来分类,方便我们进行查找 常见的配置如下:

总结
- 了解如何查看task和创建task
- 掌握task的基本API用法
- 学习如何配置task