Java 使用插件从Maven中的Nexus中挑选最新版本(非快照版本)
我使用的是Maven 3.5。我有一个多模块项目结构:模块a是父模块,有两个子模块B和模块C 我的要求是:我想从Nexus获得某些第三方JAR的最新版本。这些基本上是来自测试单元的罐子。请注意,我不想要快照版本 我了解到在中的pom.xml中指定RELEASE不适用于maven 3.x版本。但我试过了,效果很好。(使用IntelliJ只是为了获取信息) 1)为什么它对我有用呢? 2)我应该使用Maven 3.5版本吗? 我还了解到,可以使用Maven“版本Maven插件”,目标是在Maven 3.x中使用“使用最新版本”。我不知道如何准确地使用它。我尝试过以下方法:Java 使用插件从Maven中的Nexus中挑选最新版本(非快照版本),java,plugins,maven-3,pom.xml,Java,Plugins,Maven 3,Pom.xml,我使用的是Maven 3.5。我有一个多模块项目结构:模块a是父模块,有两个子模块B和模块C 我的要求是:我想从Nexus获得某些第三方JAR的最新版本。这些基本上是来自测试单元的罐子。请注意,我不想要快照版本 我了解到在中的pom.xml中指定RELEASE不适用于maven 3.x版本。但我试过了,效果很好。(使用IntelliJ只是为了获取信息) 1)为什么它对我有用呢? 2)我应该使用Maven 3.5版本吗? 我还了解到,可以使用Maven“版本Maven插件”,目标是在Maven 3
<properties>
<!-- V dependencies -->
<version.vvv.iii.piiii></version.vvv.iii.piiii>
</properties>
<dependency>
<groupId>c.b.ttt</groupId>
<artifactId>V-RApi</artifactId>
<version>version.vvv.iii.piiii</version>
</dependency>
在模块A的父pom.xml中:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<goals>
<goal>use-latest-releases</goal>
</goals>
</execution>
</executions>
</plugin>
org.codehaus.mojo
版本maven插件
2.5
使用最新版本
现在3)在子模块中我的依赖项的版本标签中,比如说C,我应该如何以及指定什么
<properties>
<!-- V dependencies -->
<version.vvv.iii.piiii></version.vvv.iii.piiii>
</properties>
<dependency>
<groupId>c.b.ttt</groupId>
<artifactId>V-RApi</artifactId>
<version>version.vvv.iii.piiii</version>
</dependency>
c、 b.ttt
V-RApi
vvv.iii.piiii版
基本上,我想知道如何实际使用这个特定的maven插件和目标。我阅读了Maven文档,但无法应用它。1)由于发布版本功能尚未禁用,它仍在工作(尽管这是一种“糟糕的做法”,因为它违反了可复制构建的原则)。在另一个问题中回答的人也报告说,这个版本仍然有效:
2) 是否使用RELEASE,这实际上取决于您。请注意,没有可复制的构建被广泛认为是不好的做法。假设测试团队更改了api并发布了jar。您重新构建了自己的项目,该项目采用了测试团队jar的新版本,但构建失败(即使您没有更改任何内容)。您必须将其与使用RELEASE的便利性进行权衡。再加上持续ping您的artifactory服务器以获取最新版本(如果有很多版本的话),将减慢您的构建速度
3) 如果你打算使用准确的verison编号(而不是发布编号),我个人认为这是最好的方法,那么它们应该在模块A(而不是模块C)中定义,甚至在模块A的父pom中定义(我们在我的工作场所就是这样做的)。在一个地方定义准确的版本号,并且尽可能地在模块继承人中进行,这通常是一件好事——它整洁一致,不容易出错和不一致
编辑:
根据要求,以下是如何使用maven插件:mvn版本:使用最新版本
,后面可能还有mvn版本:提交
阅读文档,尤其是“用法”页面:
谢谢您的详细解释。我明白你没有使用最新版本的观点。然而,您能否在您的答案中添加一个如何准确地使用版本maven插件和使用最新版本的目标?可以举个小例子吗?