对于任何中等复杂的软件项目,您都可以快速结束复杂的依赖关系链。Maven:针对带SNAPSHOT的版本范围进行开发,但针对固定版本进行发布
考虑以下依赖关系树:
A --> B --> C
`--------^
A和B取决于C.由于每个项目的发展,固定依赖性防止持续集成。 (例如,如果C更新为A所需的修复,则B的依赖也将需要修改...)使用semantic版本控制,我们可以保持模块与版本范围一致,而无需不断调整poms。
[实际上这个图更复杂。我们不应该把所有东西都组合到一个多模块项目中(或者将它们组合起来),因为这会挫败模块化。我们要建立模块化软件与持续集成]
但是部署的版本应该是一成不变的。他们所依赖的版本应该是固定的,所以今天发布的版本(+它的依赖)与明年使用的版本相同。
目标:
- 开发商对快照发布工作(采摘快照依赖在本地或从哈德森)
- 发布是针对最新的(兼容)由发布依赖的版本(不包括快照)
- 版本永远是不可变的。
- 是什么在Maven来做到这一点的最好办法:根据A = 1.0.0将始终B和C
问题带来了什么?有没有描述这个用例的链接/文档?
- maven release插件可以解析版本范围并将它们烘焙到版本中吗?
鉴于:
- 通过默认的Maven(3.0.3)的版本范围拿起快照依赖。
- 快照并释放可被部署到单独的存储库
是否有这样做与Maven持续集成的更好的办法?
并且在版本中是否锁定版本范围?如果A 1.0取决于B [1.0,2.0)。这个依赖范围在版本A中是否存在? –