Что такое "тип задачи" в gradle?

Я могу объявить тип задачи градиента, и, похоже, это наследует некоторые методы. Например:

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

Итак, я думаю, что myCopyTask - это экземпляр класса org.gradle.api.tasks.Copy, да? И если я объявляю задачу без какого-либо типа, это экземпляр org.gradle.api.DefaultTask? Извините за основной вопрос. Я читал руководство по градации, как эта страница, но мне непонятно, какой type: точно.

Ответ 1

Почему бы просто не добавить println и не узнать себя?

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

Ответ 2

Он уже ответил, но это также может помочь понять.

Это подклассы типа Task. Когда вы определяете тип своей задачи, вы получаете доступ к/настройке/настройке определенных свойств задачи. В вашем случае это подкласс под названием "Копировать" (как вы уже выяснили).

Примечание. Задачи отправляются с различными плагинами или написаны вами.

Ответ 3

Чтобы получить тип существующей задачи, вы можете использовать встроенную help Gradle с help --task командной строки --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