我可以运行一组特定的gradle任务吗

我可以运行一组特定的gradle任务吗,gradle,gradle-task,Gradle,Gradle Task,我有一套gradle任务,可以按任何顺序运行 我把它们分为三组A,B和C 有没有办法运行一组特定的任务?就像我只想运行一个 只有B和可能是a&B的组合我想你差不多是自己回答的,除非我遗漏了什么: 您可以将它们分组到聚合任务中,这样您就可以随心所欲了。这些任务不需要附加任何操作 例如,如果您有一组任务,如foo、bar和baz,您可以将它们分组如下: // Individual tasks task foo { doLast { logger.quiet("foo!")} } task bar {

我有一套gradle任务,可以按任何顺序运行 我把它们分为三组A,B和C

有没有办法运行一组特定的任务?就像我只想运行一个
只有B和可能是a&B的组合

我想你差不多是自己回答的,除非我遗漏了什么:

您可以将它们分组到聚合任务中,这样您就可以随心所欲了。这些任务不需要附加任何操作

例如,如果您有一组任务,如foo、bar和baz,您可以将它们分组如下:

// Individual tasks
task foo { doLast { logger.quiet("foo!")} }
task bar { doLast { logger.quiet("bar!")} }
task baz { doLast { logger.quiet("baz!")} }

// Aggregate tasks (groups)
task A(dependsOn: ["foo", "bar"])
task B(dependsOn: ["foo", "baz"])
task C(dependsOn: ["baz"])
tasks.findAll{}.each { task ->
    tasks.maybeCreate(task.group).dependsOn(task)
}
运行一个函数执行foo和bar:

同时运行A和B将执行它们:

$ gradle A B

> Task :bar
bar!

> Task :foo
foo!

> Task :baz
baz!

BUILD SUCCESSFUL in 1s
3 actionable tasks: 3 executed
更新:抱歉,没有意识到您在谈论任务的实际组属性

我很确定,您仍然需要为每个组自己创建一个任务,但您可以使用以下方法简化依赖项定义:

// Individual tasks
task foo { doLast { logger.quiet("foo!")} }
task bar { doLast { logger.quiet("bar!")} }
task baz { doLast { logger.quiet("baz!")} }

// Aggregate tasks (groups)
task A(dependsOn: ["foo", "bar"])
task B(dependsOn: ["foo", "baz"])
task C(dependsOn: ["baz"])
tasks.findAll{}.each { task ->
    tasks.maybeCreate(task.group).dependsOn(task)
}
A.dependsOntasks.matching{it.group=A}

如果有多个组,则可以进一步自动创建分组任务,如下所示:

// Individual tasks
task foo { doLast { logger.quiet("foo!")} }
task bar { doLast { logger.quiet("bar!")} }
task baz { doLast { logger.quiet("baz!")} }

// Aggregate tasks (groups)
task A(dependsOn: ["foo", "bar"])
task B(dependsOn: ["foo", "baz"])
task C(dependsOn: ["baz"])
tasks.findAll{}.each { task ->
    tasks.maybeCreate(task.group).dependsOn(task)
}

这是一件很好的事情,但是当我运行a时,我有100个任务必须运行,当我创建新任务时,我决定它必须与a、B、C或其他东西一起运行。