从Maven Release插件 - Prepare a Release document开始,准备版本将经历以下版本阶段:
我的问题是:
有没有办法在批处理模式下为依赖项执行第8步?我知道如何使用参数(developmentVersion)将项目版本更改为SNAPSHOT,但我不知道如何更改依赖项。
当我使用
时mvn release:prepare release:perform
maven告诉我,我的pom中有SNAPSHOT依赖项,我可以为它们提供发布和开发版本。但有没有办法以批处理模式提供它们?
我知道maven-versions-plugin:use-latest / next-snapshot但它不适用于我。
我的版本号流程应如下所示:
答案 0 :(得分:0)
没有简单的方法可以做到这一点。困难来自于每个工件都有不同的版本。发布插件更适合发布具有相同生命周期的工件。
现在,如果您可以使它们具有相同的生命周期,那么您需要做的是创建一个多模块项目并从根pom中释放。这种情况下的诀窍是,由于所有模块及其依赖项具有相同的版本,因此您应该仅在<parent>
部分中指定版本以将其删除,并在<dependency>
部分中使用版本{ {1}}。这样你可以一起发布所有内容,发布插件不需要更改依赖项版本,因为它已经是一个变量。
如果工件没有相同的生命周期,那么另一个替代方案仍然是创建一个多模块项目并以交互模式发布(即不是来自jenkins或构建服务器),在这种情况下只要所有工件在同一个反应器中,发布插件将查询每个子模块的版本。
最后,如果您不能进行交互式发布,那么我认为有一种方法可以通过提供artifactId和每个模块的版本来指定命令行中所有子模块的版本,但我找不到该设置在文档中。我提到它以防你想进一步研究
但是,在所有情况下,如果将项目配置为multi module project
,您将有更大的成功机会答案 1 :(得分:0)
Thx Hilikus的回答。
回答我的问题:从SNAPSHOT设置依赖项仅在交互模式下存在。使用release插件无法在批处理模式下执行此操作。
解决方案是在版本插件旁边使用release插件:
git push
更改依赖关系到SNAPSHOT并将其释放到快照工件是在提交作业(Jenkins)之后完成的。
将有4个提交git,但工作将完成。 因为我错误的版本格式(01.01.01 insted of 1.1.1 - PM dosen并且允许我更改它...)我需要使用use-next-version并将snapshot allow设置为true。在use-next-snapshot中有NumberFormatException。 项目版本将通过使用发布插件更改为SNAPSHOT,并且依赖项将在提交作业后更改为SNAPSHOT。