20

在我的 Maven 项目中,我使用这样的依赖项:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>[4.2.2, 5.0)</version>
</dependency>

由于下一个主要版本(5.0)可能会更改 API,我希望我的项目使用可用于分支 4.x 的最新稳定版本。

今天早上的错误调查告诉我这个表达式 [4.2.2, 5.0) 可以抓取任何可用的版本。就我而言:4.3-alpha1。

如何让maven使用版本范围内的最新版本?

4

2 回答 2

17

查看Maven range selections的文档,我注意到以下评论:

依赖范围的解析不应解析为快照(开发版本),除非它被包含为显式边界。

除非工件版本以 结尾,否则-SNAPSHOTMaven 将认为它是有效的发布版本。据我所知,-alpha1对 Maven 没有特殊意义。这只是另一个随机限定符。

无论如何,我强烈建议您放弃版本范围。可预测的构建应该是任何稳定项目的目标,而版本范围则与此背道而驰。

于 2013-01-21T08:32:37.033 回答
1

Maven 3 也支持 alpha、beta 和快照的版本控制,顺序如下 alpha < beta < snapshot

于 2016-06-21T14:08:35.420 回答