在我的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在版本范围内使用最新版本?
答案 0 :(得分:16)
查看Maven range selections的文档,我注意到了评论:
依赖关系范围的解析不应解析为快照(开发版本),除非它被包含为显式边界。
除非工件版本以-SNAPSHOT
结尾,否则Maven会将其视为有效的发布版本。据我所知,-alpha1
对Maven没有特殊意义。这只是另一个随机资格赛。
无论如何,我强烈建议您放弃版本范围。可预测的构建应该是任何稳定项目的目标,并且版本范围也是如此。
答案 1 :(得分:0)
Maven 3也支持alpha,beta和快照的版本控制
按以下顺序
alpha < beta < snapshot