如何告诉maven始终使用最新的 stable 版本的依赖项?
我知道无论是this问题,我都可以依赖最新版本或最新版本。我也知道我可以使用依赖插件(也来自该链接)。
但是,我使用谷歌的番石榴库,似乎每周都有更新。我发现自己一直在更新版本。这是谷歌版本系统,它更多的是增量更新,而不是大爆炸更新,因此它不太可能破坏任何东西,特别是考虑到这个库的性质。
所以我想不必继续更改我的maven依赖项的版本标识符。 所以我可以这样做:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>[12.0.1,)</version>
</dependency>
哪个会给我12.0.1及更高版本...并且由于我不依赖于任何将提供此依赖关系的任何快照版本的回购,这将确保我始终拥有最新版本。< / p>
但是,它也会给我“rc”版本(13.0-rc1和13.0-rc2)。这是我想要避免的。
是否可以使maven仅依赖于稳定释放?即,名字中没有任何“rc”或“beta”或“alhpa”,只是简单的“13.0”。
答案 0 :(得分:2)
您可以在版本元素中使用RELEASE值作为依赖项,以使Maven使用最新发布的版本。然而,这不是最佳实践,因为它可以破坏构建可重现性。
此外,Maven不会在12.0.1和13.0-rc1等版本之间产生逻辑差异。从Maven的角度来看,它们都是已发布的版本,基本上你要做的就是以多种方式打破Maven发布的意识形态。
因此,您应该定期发布版本并使用特殊的存储库和工件升级过程,而不是像13.0-rc1那样对工件进行版本控制。因此,您可以拥有可在测试期间使用的发布候选存储库,并且一旦测试通过,您就会将这些工件提升到最终发布存储库。但如果您需要进行更改,您只需更新已发布的版本,即13.0,13.0.1等...