在子项目上运行gradle任务的短方法

在子项目上运行gradle任务的短方法,gradle,gradlew,Gradle,Gradlew,因此,使用gradle 5.6.1,我有一个包含多个嵌套模块/项目的项目: root ├── A └── B └── C └── D 现在,如果我使用maven,我可以 mvn clean install -pl :D 但在gradle,我似乎需要输入: ./gradle :B:C:D:assemble 这意味着我需要知道并键入模块/子项目的完整路径 有没有更短的方法,只通过:D ps:如果相关的话,我也在使用gw(),目前似乎没有合适的方法来实现这一点你可以通过。

因此,使用gradle 5.6.1,我有一个包含多个嵌套模块/项目的项目:

root
├── A
└── B
    └── C
        └── D
现在,如果我使用maven,我可以

mvn clean install -pl :D
但在gradle,我似乎需要输入:

./gradle :B:C:D:assemble
这意味着我需要知道并键入模块/子项目的完整路径

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


ps:如果相关的话,我也在使用gw(),

目前似乎没有合适的方法来实现这一点

你可以通过。例如:


谢谢你的建议。我可能无法在代码库中介绍这一点,但我会尝试:)如果您只是想自己使用它,对于所有构建,您可以通过。例如,在
USER\u HOME/.gradle/init.gradle
中,如何从初始化脚本@lance java访问tasks对象?运行init脚本时出错:>无法获取org.gradle.invocation.DefaultGradle类型的生成的未知属性“tasks”。与
build.gradle
(针对实例执行)不同,init脚本针对实例执行。因此,您可以执行类似于
rootProject{tasks.addRule(…)}
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