假设Team A
在library A version 1.0.1
上工作
Team B
正在研究library B version 2.0.3
我们希望将这两个工件一起交付。
library A depends on Library B
在这种情况下,我们应该配置Jenkins在Maven远程仓库上部署工件,以便开发人员始终使用最新的SNAPSHOT版本吗? 最佳做法是什么?
答案 0 :(得分:0)
只需使用mvn deploy
将SNAPSHOT版本部署到公共Maven存储库,并在lib A的pom.xml中将lib B 2.0.4-SNAPSHOT
声明为依赖项。
确保使用mvn <goal> -U
构建lib A来触发Maven以更新SNAPSHOT依赖项。
答案 1 :(得分:0)
两种可能的方法:
如果库B的最新发行版本(例如2.0.2)足以满足库A的需求,即它提供了所需的所有功能,则A可以依赖2.0.2版中的B。当您在版本1.0.1中与库B在2.0.2中一起发布时,不会感到惊讶。
如果库B的最新发布版本 还不够,即A需要尚未发布的B的新方法,则需要使用库B的SNAPSHOT版本。 B必须定期构建SNAPSHOT版本,并且团队A可以使用它。在发行之前,B需要构建发行版本,然后,A可以针对B的发行版本进行构建。