为什么maven使用不同的插件版本来构建不同的项目
Why maven uses difference plugin version to build different project
我有项目A和B,使用Maven 2.2.1
用它构建A,结果是肯定的,而用它构建B,失败了。
而且我发现它为两个项目使用了不同版本的插件。
我不知道为什么?? A和B中的pom.xml
都没有指定插件的版本。
我只是希望它使用与 A 相同版本的插件来构建 B 项目。
你有什么想法吗?非常感谢。
第一个问题是您没有定义插件的版本。
通常你应该有一种 corporate/company pom 定义所有使用的插件及其特定版本号。通过使用这种方法,您可以完全防止这种情况。
您最好的办法是通过 pluginManagement 在 pom 文件中定义使用的插件:
<project...>
.
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-xyz-plugin</artifactId>
<version>yyyyy</version>
</plugin>
.
</plugins>
</pluginManagement>
.
</build>
.
</project>
如果您这样做,您将获得可重现的构建结果。
我有项目A和B,使用Maven 2.2.1
用它构建A,结果是肯定的,而用它构建B,失败了。
而且我发现它为两个项目使用了不同版本的插件。
我不知道为什么?? A和B中的pom.xml
都没有指定插件的版本。
我只是希望它使用与 A 相同版本的插件来构建 B 项目。
你有什么想法吗?非常感谢。
第一个问题是您没有定义插件的版本。
通常你应该有一种 corporate/company pom 定义所有使用的插件及其特定版本号。通过使用这种方法,您可以完全防止这种情况。
您最好的办法是通过 pluginManagement 在 pom 文件中定义使用的插件:
<project...>
.
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-xyz-plugin</artifactId>
<version>yyyyy</version>
</plugin>
.
</plugins>
</pluginManagement>
.
</build>
.
</project>
如果您这样做,您将获得可重现的构建结果。