2

如何告诉 maven 始终使用最新的稳定版本的依赖项?

我知道我可以依赖最新版本或仅依赖最新版本,无论这个问题是什么。我也知道我可以使用依赖插件(也来自那个链接)。

但是,我使用 google 的 guava 库,它似乎每周都会更新。我发现自己一直在更新版本。这是 google 版本控制系统,它更多的是增量更新而不是大爆炸更新,因此它不太可能破坏任何东西,特别是考虑到这个库的性质。

所以我希望不必不断更改我的 Maven 依赖项的版本标识符。所以我可以这样做:

    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>[12.0.1,)</version>
    </dependency>

这将为我提供 12.0.1 及更高版本......并且由于我不依赖任何将提供此依赖项的任何快照版本的存储库,这将确保我始终拥有最新的发布版本。

但是,它也会给我“rc”版本(13.0-rc1 和 13.0-rc2)。这是我想要避免的。

是否可以使 maven 仅依赖于稳定版本?即它们的名称中没有任何“rc”或“beta”或“alhpa”,只是简单的“13.0”。

4

1 回答 1

2

您可以在版本元素中为您的依赖项使用 RELEASE 值,以使 Maven 使用最新发布的版本。然而,这不是最佳实践,因为它会破坏构建的可再现性。

此外,Maven 不会在 12.0.1 和 13.0-rc1 等版本之间产生逻辑差异。从 Maven 的角度来看,它们都是发布版本,基本上你要做的是以几种方式打破 Maven 发布意识形态。

因此,您不应像 13.0-rc1 那样对工件进行版本控制,而应该定期发布并使用特殊的存储库和工件升级过程作为发布的一部分。因此,您可以拥有一个可在测试期间使用的发布候选存储库,一旦测试通过,您将把这些工件提升到最终发布存储库。但是如果您需要进行更改,您只需更新已发布的版本,例如 13.0、13.0.1 等...

于 2012-08-14T15:23:27.287 回答