什么是gradle中的“任务类型”?

时间:2016-12-28 20:16:35

标签: gradle

我可以为gradle任务声明一个类型,这样做似乎继承了一些方法。例如:

task myCopyTask(type: Copy){
  from "foo"
  into "bar"
}

所以,我认为myCopyTaskorg.gradle.api.tasks.Copy类的一个实例,是吗?如果我声明一个没有任何类型的任务,那么它是org.gradle.api.DefaultTask的一个实例?对不起基本问题。我一直在阅读像this page这样的gradle指南,但我不清楚type:究竟是什么。

3 个答案:

答案 0 :(得分:3)

为什么不添加println并自己查找?

task myCopyTask(type: Copy) {
    ... 
}
println "Type is $myCopyTask.class.name"

答案 1 :(得分:1)

它已经回答了,但这也可能有助于理解。

它们是Task类型的子类。为任务定义类型后,即可访问/设置/配置特定任务的属性。在您的情况下,这是一个名为“复制”的子类(您已经知道了)。

注意:任务随各种插件一起提供或由您编写。

答案 2 :(得分:0)

要获取现有任务的类型,可以使用help命令行选项来使用Gradle内置的--task任务。 --task选项采用项目中任何任务的任务路径。这是一个本身使用help任务的示例:

# ./gradlew help --task help                               

> Task :help                                        
Detailed task information for help                  

Path                                                
     :help                                          

Type                                                
     Help (org.gradle.configuration.Help)           

Options                                             
     --task     The task to show help for.          

Description                                         
     Displays a help message.                       

Group                                               
     help