Java CI部署策略
假设Java CI部署策略,java,maven,jenkins,continuous-integration,Java,Maven,Jenkins,Continuous Integration,假设团队A正在开发库A版本1.0.1 团队B正在开发库B版本2.0.3 我们希望同时交付这两个工件 library A depends on Library B 在这种情况下,我们是否应该将Jenkins配置为在maven remote repo上部署工件,以便开发人员始终使用最新的快照版本? 这里的最佳实践是什么?只需使用mvn deploy将快照版本部署到公共Maven存储库,并在lib a的pom.xml中将lib B2.0.4-SNAPSHOT声明为依赖项 请确保使用mvn-U构建li
团队A
正在开发库A版本1.0.1
团队B
正在开发库B版本2.0.3
我们希望同时交付这两个工件
library A depends on Library B
在这种情况下,我们是否应该将Jenkins配置为在maven remote repo上部署工件,以便开发人员始终使用最新的快照版本?
这里的最佳实践是什么?只需使用
mvn deploy
将快照版本部署到公共Maven存储库,并在lib a的pom.xml中将lib B2.0.4-SNAPSHOT
声明为依赖项
请确保使用
mvn-U
构建liba,以激发Maven来更新快照依赖项。两种可能的方法:
- 如果库B的最新发布版本(比如2.0.2)对于库A来说足够了,即它提供了所需的所有功能,那么A可以依赖于版本2.0.2中的B。当您在1.0.1版中发布库A,在2.0.2版中发布库B时,不会有任何意外
- 如果库B的最新发布版本还不够,即A需要尚未发布的B的新方法,您需要使用库B的快照生成。因此团队B必须定期生成快照版本,团队A可以使用它。在发布之前,B需要构建一个发布版本,之后,a可以根据B的这个发布版本进行构建