我正在使用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中的依赖项版本?
答案 0 :(得分:5)
这就是我实现目标的方式(始终采用最新版本的依赖项):
我已经设置了一个预先步骤来调用顶级maven目标&#34;在詹金斯并触发命令:
mvn versions:use-latest-versions -DallowSnapshots=true -DexcludeReactor=false
父pom上的这将更新父POM及其所有子POM中的依赖项版本。 谢谢khmarbaise试图帮助我。我很感激你的时间。