mig*_*rto 0 java maven maven-release-plugin
我正在用maven-release-plugin和git 做我的第一个版本.而不是标记我正在使用发布:分支目标.我同意完整的relase-flow流程,除了一点:所有本地依赖关系都会自动更新到开发分支中的下一个SNAPSHOT版本.
这是我的具体情况:我正在一个有20多个maven项目的项目中工作.假设在开发过程中它们都处于SNAPSHOT版本.我想用maven插件发布一个版本.发布完成后,所有POM版本都已递增并再次设置为SNAPSHOT.如果我只需要在一个项目的一行代码中进行更改(修复错误)并创建一个新版本,那么所有项目(默认情况下)都必须在我刚刚更改其中一个项目时再次增加它们的版本.
在我看来,使用上一版本的状态继续开发更有意义(所有版本都没有 SNAPSHOT).在下一个开发迭代中,我可以仅在我已更改的这些项目中手动设置下一个SNAPSHOT版本.在下一个版本中,只有已更改的项目才会"升级"为新版本,但不会全部升级到新版本.
我认为这种情况并不例外,但我没有找到信息怎么做(我不知道我是否打破了"释放"的哲学......)
Somedy知道如何避免将所有POM更新到下一个SNAPSHOT版本并将POM文件保留为重新版本?
先感谢您!
多模块项目的想法是所有模块都是同一发布周期的一部分.即使某些模块不包含任何更改,它们也将成为发布的一部分.有些人可能会说:版本很便宜.与您描述的理想图片相比,其优势更大:管理版本和控制模块间依赖性要容易得多.请记住,主干和分支应始终具有SNAPSHOT版本,因为这些是工作副本.如果您使用最终版本,则发布将失败,因为您无法将相同版本标记两次,也不能两次部署(=上载)相同版本.这非常重要,因为Maven依赖于最终版本是不可变的定义,即Maven在本地存储库中可用后永远不会再次下载最终版本.
因此,如果某些模块没有与整个多模块项目相同的发布周期,则应将它们移出此多模块项目(或一次性释放它们).