java - 如何告诉Maven使用最新版本的一个依赖项?

  显示原文与译文双语对照的内容

在 Maven 中,依赖项通常设置如下:


<dependency>
 <groupId>wonderful-inc</groupId>
 <artifactId>dream-library</artifactId>
 <version>1.2.3</version>
</dependency>

现在,如果你正在使用经常发布的库,那么经常更新 <版本> 标记会有些麻烦。 是否有办法告诉 Maven 总是使用最新的可用版本( 从仓库中)?

时间:

请看一下这个页面 ( 节"依赖项版本的") 。 你可能想要做的是


<version>[1.2.3,)</version>

HTH

编辑: 刚刚看到链接文档中表达的思想可能还没有实现。。

编辑 2: 范围均被实现的版本

请注意: @AndersSandvig 请考虑被广泛接受的答案更改为一个不同的那个,而不是我的。 现在,我建议使用版本插件,参见 的答案。

不像其他的我认为有很多原因,你可能总是想要最新的版本。 特别是如果你正在进行持续部署( 我们有时在一天内有 5个版本) 并且不想做multi-module项目。

我做的是让 hudson/jenkins为每个构建做以下事情:


mvn clean versions:use-latest-versions scm:checkin deploy -Dmessage="update versions" -DperformRelease=true

这就是我使用版本插件和scm插件更新依赖项,然后将它的签入源代码管理。 是,我让我的CI做SCM签到( 对于 Maven 发行插件,你无论如何都要做) 。

你需要设置版本插件来更新你想要的内容:


 <plugin>
 <groupId>org.codehaus.mojo</groupId>
 <artifactId>versions-maven-plugin</artifactId>
 <version>1.2</version>
 <configuration>
 <includesList>com.snaphop</includesList>
 <generateBackupPoms>false</generateBackupPoms>
 <allowSnapshots>true</allowSnapshots>
 </configuration>
 </plugin>

我使用发行插件来执行-SNAPSHOT的发行版,并验证是否有 -SNAPSHOT ( 这很重要) 版本。

如果你做了什么,你将获得所有快照构建的最新版本和发布版本的最新版本版本。 你的构建也会重现。

...