如何在root build.gradle上重构某些子项目的上载存档?

如何在root build.gradle上重构某些子项目的上载存档?,gradle,build.gradle,Gradle,Build.gradle,我有一个多项目,我想将一些子项目工件上传到maven存储库。 目前,我在main build.gradle中编写了以下代码: task sourcesJar(type: Jar, dependsOn: classes) { ... } project(':subProjName1') { apply plugin: 'java' apply plugin: 'maven' configurations { subProjName1Archives }

我有一个多项目,我想将一些子项目工件上传到maven存储库。 目前,我在main build.gradle中编写了以下代码:

task sourcesJar(type: Jar, dependsOn: classes) { ... }

project(':subProjName1') {
   apply plugin: 'java'
   apply plugin: 'maven'

   configurations {
       subProjName1Archives
   }

   uploadSubProjName1Archives {
       repositories {
           mavenDeployer {
               repository(url: "file:///$rootDir/mvn-repo/")
           }
       }
   }

   artifacts {
       subProjName1Archives jar
       subProjName1Archives sourcesJar
   }
}

project(':subProjName2') { ... }
...
project(':subProjNameN') { ... }
并为上载档案执行以下操作:

gradlew.bat uploadSubProjName1Archives
gradlew.bat uploadSubProjName2Archives
...
gradlew.bat uploadSubProjNameNArchives

它正在做我想做的事情,但是我如何才能将它概括为主build.gradle中的一个任务呢?

如果您将上述代码放入根构建脚本中的
子项目{..}
块中,您可以使用
gradle uploadMyConfiguration
一次调用所有任务。(仅限)如果您对单个任务有具体需求(例如,因为另一个任务依赖于上载的所有工件),则可以添加进一步的生命周期任务:

task uploadAll {
    dependsOn { subprojects.uploadMyConfiguration }
}
PS:除非您有充分的理由不这样做,否则您可以重用现有的
存档
配置和
上载存档
任务。
存档
配置已经包含了由
Jar
任务生成的Jar,因此您只需添加
Jar即可