Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用插件从Maven中的Nexus中挑选最新版本(非快照版本)_Java_Plugins_Maven 3_Pom.xml - Fatal编程技术网

Java 使用插件从Maven中的Nexus中挑选最新版本(非快照版本)

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

我使用的是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中使用“使用最新版本”。我不知道如何准确地使用它。我尝试过以下方法:

<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插件和使用最新版本的目标?可以举个小例子吗?