运行 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
所以,使用 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