Maven发布设置,带有SVN标签,每个模块
-
24-10-2019 - |
题
目标
每个模块带有标签的多模块Maven释放
情况
假设基于Maven的Java项目的以下项目结构:
xx-parent
xx-moduleA
xx-moduleB
xx-moduleC/submodule1
xx-moduleC/submodule2
xx-moduleC/submodule3
颠覆的项目结构如下:
xx-parent/trunk
xx-moduleA/trunk
xx-moduleB/trunk
xx-moduleC/trunk/submodule1
xx-moduleC/trunk/submodule2
xx-moduleC/trunk/submodule3
我的目标是执行发行版时每个模块创建标签:
xx-parent/tags/xx-parent-1.0
xx-moduleA/tags/xx-moduleA-1.0
xx-moduleB/tags/xx-moduleB-1.0
xx-moduleC/tags/xx-moduleC-1.0
过去,每个模块都是单独构建和释放的。随着项目的增长(30个模块),建立释放的时间增加了。我想将项目更改为设置以执行反应堆构建和释放的多模块。建筑似乎不是问题,但是每个模块创建标签。
Maven-Release-Plugin似乎坚持要为整个项目/发行版制作一个标签。我正在寻找一种创建多个标签的方法,例如每个模块的标签。
到目前为止我尝试过的
- 创建一个XX-All Subversion别名,该别名检查所有子模块,因此我可以用它们参考
<module>../xx-moduleB</module>
- 启用 提交Byproject, ,它确实每个模块提交,但每个模块都不要标记。看
- 每个模块都有自己的
<scm>
元素pom.xml
, ,但是在执行反应器释放时未使用它们。 mvn --batch-mode -DcommitPerProject=true -DautoVersionSubmodules=true -Drelease.version=1.0.6 release:prepare release:perform
问题
- Maven-Release-Plugin不会创建每个模块的SVN标签
- maven-release-plugin覆盖
<scm>
带有无效URL的标签,例如嵌套的“ TRUNK” - 标签下方的标签
问题
如何通过Maven Release流程,多模块布局设置此项目,并且每个模块仍然获得单独的标签?
参考
http://jira.codehaus.org/browse/mrelease-261 (关闭)和MRELEASE-561(开放)
解决方案
根据ArnaudHéritier(Apache Maven PMC成员)的说法
Maven无法处理复合应用程序,例如Module-A V0.1,Module-B V0.3。
Maven将一个项目及其所有子模型视为独特的集合。
看: http://blog.aheritier.net/maven-release-plugin-2-0/ (2010年6月9日)
也许自从Maven 3以来的情况发生了变化?
不隶属于 StackOverflow