【问题标题】:How to refactor uploadArchives for some subprojects at root build.gradle?如何在根 build.gradle 重构某些子项目的 uploadArchives?
【发布时间】:2014-03-12 16:01:24
【问题描述】:

我有一个多项目,我想将一些子项目工件上传到 maven 存储库。 目前,我在主 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 build.gradle


    【解决方案1】:

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

    task uploadAll {
        dependsOn { subprojects.uploadMyConfiguration }
    }
    

    PS:除非您有充分的理由不这样做,否则您可以重用现有的archives 配置和uploadArchives 任务。 archives 配置已经包含了jar 任务生成的Jar,所以你只需要添加sources Jar。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 1970-01-01
      • 2014-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多