Maven 3-如何使用versions-maven-plugin告诉maven使用最新版本?

时间:2015-04-13 19:53:01

标签: java maven-3

我正在使用Maven 3.2.5。我有一个多模块项目,父P和子模块A(jar),B(战争),C(EAR)。我希望始终使用最新版本的依赖项,因为我们每晚都会在QA环境中构建。我们可以通过使用' LATEST'在Maven2中实现这一点。代替版本号。但看起来这个功能在MAVEN3中被禁用了。现在我正在尝试使用" use-latest-versions" versions-maven-plugin中的目标。

我正在尝试在模块B和C上运行此插件,以便模块B将使用模块A中的最新工件,模块C将使用模块B中的最新工件来构建最终的EAR。

    **My parent POM** 
        <modelVersion>4.0.0</modelVersion>

        <groupId>GGGGGGG</groupId>
        <artifactId>JARJARAJR</artifactId>
        <version>19.1-SNAPSHOT</version>
        <packaging>pom</packaging>

        <name>JARJARAJR</name>

//Modules of this project
        <modules>
            <module>../../../Module A</module>
            <module>../../../Module Bs</module>
            <module>../../../Module C</module>
        </modules>

    <build>
            <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>versions-maven-plugin</artifactId>
                    <version>2.1</version>
                    <executions>
                        <execution>
                            <id>update-dependency-versions</id>
//Asking maven to run this goal in 'pre-clean' phase
                            <phase>pre-clean</phase>
                            <goals>
                                <goal>use-latest-versions</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <allowSnapshots>true</allowSnapshots>
                        <excludeReactor>false</excludeReactor>
                    </configuration>
                </plugin>
                </plugins>
            </pluginManagement>

    The command I am using to run parent POM is : **mvn -U clean install -P devb -    Dmaven.test.skip=true**

我正在尝试调用&#34;使用最新版本&#34; &#34;预清洁&#34;的目标阶段(我也尝试验证并初始化阶段)。在构建模块A之后.Bu尝试解析模块B的旧版本而不运行目标&#34; use-latest-versions&#34; for&#39; versions-maven-plugin&#34;。

我应该在哪个阶段运行&#34; use-latest-versions&#34;目标,以便maven在尝试构建它之前更新模块B中的依赖项版本?

1 个答案:

答案 0 :(得分:5)

这就是我实现目标的方式(始终采用最新版本的依赖项):

我已经设置了一个预先步骤来调用顶级maven目标&#34;在詹金斯并触发命令:

mvn versions:use-latest-versions -DallowSnapshots=true -DexcludeReactor=false
父pom上的

这将更新父POM及其所有子POM中的依赖项版本。 谢谢khmarbaise试图帮助我。我很感激你的时间。