Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java CI部署策略_Java_Maven_Jenkins_Continuous Integration - Fatal编程技术网

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 B
2.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的这个发布版本进行构建