在问题出现之前,我想描述一下我使用的方法。 我在版本控制文件夹下有很多项目,其中一些是多个maven项目,其中一些是独立的bundle,其中一些是maven插件或原型。所有jar都是快照(目前我们不能使用发布工件)。因此,例如应用程序A1依赖于依赖于实用程序C的bundle B,另一个应用程序A2直接依赖于实用程序C.当我在C中更改代码时,我需要更新它的版本然后更新B和A2,然后更新A1。在一周内更新所有那些poms真的很烦人。所以我正在寻找一些可以为我处理它的自动解决方案(如果C有新版本,所有依赖的模块都必须更新)。 有什么机构有想法吗?
提前致谢
P.S。我想制作一个可以解决这个问题的MOJO,但我面临一些困难,因为并非所有项目都有共同的父项目......
答案 0 :(得分:3)
听起来像版本插件可以处理...... http://mojohaus.org/versions-maven-plugin/
答案 1 :(得分:2)
这被认为是一种不好的做法,但如果使用-DupdateReleaseInfo=true
(或使用发布插件)部署项目,则可以将依赖项版本设置为RELEASE
<dependency>
<groupId>some.groupid</groupId>
<artifactId>some.artifactid</artifactId>
<version>RELEASE</version>
</dependency>
您将始终获得最新版本
答案 2 :(得分:0)
如果您只使用SNAPSHOT-s,您可以随时选择基于父项目。在父级中定义版本并使子级扩展它。您也可以选择使用RELEASE或LATEST等版本。
答案 3 :(得分:0)
考虑使用持续集成引擎来监视所有项目并在更改时构建它们。
如果您使用Jenkins,您可以将其设置为将构建的maven工件提供为Maven存储库,然后您可以在自己的Maven配置中使用它。
这应该足够了 - 快照机制处理剩下的事情。