如何为Gradle任务指定类别?

Men*_*hak 29 groovy intellij-idea gradle

我正在Intellij IDEA写一个Gradle任务.我注意到在Gradle窗口中,任务显示在文件夹下,如下所示:

在此输入图像描述

我想知道,你怎么能给任务一个'类别',使它出现在截图中所示的文件夹中?

我创建的所有任务通常都会结束other.我也在编写一个自定义插件,并希望它显示在我选择的"文件夹"名称下.但我认为在编写任务时它将是相同的答案.

tim*_*tes 32

您只需设置group任务的属性即可.例如(来自http://mrhaki.blogspot.co.uk/2012/06/gradle-goodness-adding-tasks-to.html)

task publish(type: Copy) {
    from "sources"
    into "output"
}

configure(publish) {   
    group = 'Publishing'
    description = 'Publish source code to output directory'
}
Run Code Online (Sandbox Code Playgroud)


Vad*_*kan 23

或者,缩短语法:

task publish(type: Copy) {
  group = "Publishing"
  description = "Publish source code to output directory"
  from "sources"
  into "output"
}
Run Code Online (Sandbox Code Playgroud)


Mah*_*zad 9

这适用于Kotlin DSL(build.gradle.kts脚本):

tasks.create("incrementVersion") {
    group = "versioning"
    // ...
}
Run Code Online (Sandbox Code Playgroud)


And*_*mov 6

此外,将任务分组并避免样板代码的好方法是下一个:

class PublishCopy extends Copy {
    PenguinTask() {
        group = 'publish copy'
    }
}
Run Code Online (Sandbox Code Playgroud)

然后您不必每次都指定任务组:

task copySources(type: PublishCopy) {
  from "sources"
  into "output"
}

task copyResources(type: PublishCopy) {
  from "res"
  into "output/res"
}
Run Code Online (Sandbox Code Playgroud)


Ole*_*huk 6

如果您有许多任务,可以按如下方式配置组:

def groupName = "group-name"
task1.group = groupName
task2.group = groupName
task3.group = groupName
Run Code Online (Sandbox Code Playgroud)