gpt4 book ai didi

continuous-integration - Gradle发布系统任务-在子项目上调用uploadArchives

转载 作者:行者123 更新时间:2023-12-03 03:44:05 26 4
gpt4 key购买 nike

为了发布我的系统,我正在创建一个发布器项目,该项目针对许多其他项目调用uploadArchives。

在我的项目中,我有以下文件:

settings.gradle

include '../proj-a',  '../proj-b'

build.gradle
task releaseSystem() {
// what goes here?
}

releaseSystem任务的内容应该是什么,以便我可以调用 gradle releaseSystem并让其为我的每个子项目运行uploadArchives?

我已经尝试了多种选择,但到目前为止都没有成功。

感谢您提供的任何见解。

答案

gradle为我的问题提供的优美的解决方案给我留下了深刻的印象。这是我的最终解决方案(如Peter在下面指出):

settings.gradle
include 'proj-a',  'proj-b'
project (':proj-a').projectDir = new File(settingsDir, '../proj-a')
project (':proj-b').projectDir = new File(settingsDir, '../proj-b')

build.gradle
task releaseSystem() {
dependsOn {
[
subprojects.build,
subprojects.uploadArchives
]
}
}

请注意,由于我的存储库是一个Maven存储库,因此当我最初在我的settings.gradle中包含'../proj-a'时,它会生成带有artifactId ../proj-a的poms,这是无效的。我必须将我的settings.gradle更改为上述格式,以便系统正确地将pom放在一起,并成功完成uploadArchives任务。

最佳答案

假设所有子项目都有一个uploadArchives任务:

task releaseSystem {
dependsOn { subprojects.uploadArchives }
}

请注意,这不会运行子项目的测试。

关于continuous-integration - Gradle发布系统任务-在子项目上调用uploadArchives,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17603141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com