我有一个多项目,我想将一些子项目工件上传到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中的一个任务?
答案 0 :(得分:0)
如果将上述代码放入根构建脚本的subprojects { .. }
块中,则可以使用gradle uploadMyConfiguration
一次调用所有任务。 (仅)如果您对单个任务有具体需求(例如,因为另一个任务依赖于正在上载的所有工件),您可以添加更多生命周期任务:
task uploadAll {
dependsOn { subprojects.uploadMyConfiguration }
}
PS:除非你有充分的理由不这样做,否则你可以重用现有的archives
配置和uploadArchives
任务。 archives
配置已包含jar
任务生成的Jar,因此您只需添加sources
Jar。