为什么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>

如果您这样做,您将获得可重现的构建结果。

此外你不应该使用Maven 2.X anymore cause it's defined EoL.