运行 gradle 子项目任务的捷径

Short way to run gradle task on subproject

所以,使用 gradle 5.6.1,我有一个包含多个嵌套的项目 modules/projects:

root
├── A
└── B
    └── C
        └── D

现在,如果我使用 maven,我可以做到

mvn clean install -pl :D

但在 gradle 中我似乎需要输入:

./gradle :B:C:D:assemble

这意味着我需要知道并键入 module/subproject.

的完整路径

有没有更短的方法,一些方法只通过 :D ?

ps:如果相关,我也在使用 gw (https://github.com/srs/gw)

目前好像没有合适的方法来实现

您可以通过 task rule 实现此目的。例如:

tasks.addRule("Pattern: -Pproject=<PROJECT> <TASK>") { String taskName ->
   def projectProp = findProperty('project')
   if (projectProp) {
      def matchingTasks = getTasksByName(taskName, true).findAll { it.project.name == projectProp }
      if (matchingTasks) { 
         task(taskName) {
            dependsOn matchingTasks
         }
      }
   }
}

然后在命令行

gradle -Pproject=D assemble