【发布时间】:2013-01-04 02:50:07
【问题描述】:
在我的 maven 项目中,我使用这样的依赖项:
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>[4.2.2, 5.0)</version>
</dependency>
由于下一个主要版本 (5.0) 可能会更改 API,我希望我的项目使用可用于分支 4.x 的最新 stable 版本。
今天早上的错误调查告诉我,这个表达式 [4.2.2, 5.0) 抓取了任何可用的版本。在我的例子中:4.3-alpha1。
如何让maven在版本范围内使用最新的release版本?
【问题讨论】:
-
这里有一个类似的页面:stackoverflow.com/questions/30571/…
-
@Gavin 在链接中没有回答我的问题。在提问之前我已经看过了。
-
我假设您使用 maven2(给定问题标签)。 Maven 强烈反对这样做,因为这会导致不可复制的构建。这将使任何未来迁移到最近的 Maven 版本成为一个痛苦的过程。所以,我强烈反对这样做,尽管它看起来很有用。
-
@SamuelEUSTACHI 现在我明白了。谢谢。
-
不客气。关于我自己的项目之间的依赖关系,我有同样的想法。我认为风险并不像依赖外部供应商那么大。但我发现这不是一个好的做法,即使在这种情况下也是如此。例如,你的 pom 版本的 pom 也可以为你的项目提供某种“自我文档”,然后能够准确地知道在编译时和运行时使用的库集是很有用的。您可能想知道这一点以供以后调试。