我如何使用核心Maven插件的绑定版本,但覆盖其配置?

时间:2017-08-21 11:06:49

标签: maven pom.xml

我想在我的POM中覆盖核心 Maven插件的配置。

示例:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
        <!-- my configuration here -->
    </configuration>
</plugin>

Maven发出警告,说明该插件的版本丢失了。我想使用default binding中的版本,但似乎没有找到办法。

  1. 是否有更好的方法可以在不(可能)更改其版本的情况下覆盖核心插件的配置?
  2. 我应该忽略警告吗?
  3. 由于

    澄清:我熟悉最佳做法。但是,在我看来,核心插件的不同之处在于它们已经有明确声明的版本。 Maven也可以自由添加新的核心插件,在这种情况下,尽管有任何尝试固定版本,仍将使用默认版本。此外,Maven在使用默认版本的核心插件时不会发出警告 - 只要您不尝试覆盖其配置即可。

1 个答案:

答案 0 :(得分:1)

在父POM的pluginManagement部分设置所有插件版本是最佳做法。

原因:某些插件在某些版本中会略微改变其行为。固定插件版本是使用Maven获得稳定版本的关键。

请注意,我已经编写了一个父POM,它提供了许多常见配置。代码是开源的,您可以将它用作父POM的父级(或者如果您有单个模块项目),如果您愿意:

https://github.com/SoftSmithy/softsmithy-parent/blob/develop/pom.xml

只需确保覆盖特定于项目的部分,例如组织,scm,issueManagement,开发人员,许可证等。