如何从子POM中移除由父POM定义的插件配置

6

我有一个父pom文件,在其中定义了一些插件管理的配置项,其中有一个特定的配置项是我不想在子pom中使用的。

我尝试在子pom中覆盖其他配置项,这个方法行得通,但是“删除”配置项似乎不起作用。所谓“删除”,我是指我尝试什么都不填写,例如:

<configuration>
  <itemIdontWant></itemIdontWant>
</configuration>

上述方法没有起作用,编译过程中仍然得到相同的配置。我可以填写一些无关紧要的内容来抵消此项的影响,但我希望能找到“删除”它的正确方法。有人能帮忙吗?

1个回答

13

你可以简单地尝试以下方法:

<configuration>
  <itemIdontWant combine.self="override"></itemIdontWant>
</configuration>

上述方案的问题可能在于,如果您希望将其设置为空,则插件的默认值将成为该值。

此外,您可以使用以下方法更改配置的继承方式:

<build>
  <plugins>
    <plugin>
      <inherited>false</inherited>
      <groupId>...</groupId>
      <artifactId>..</artifactId>
    </plugin>
  </plugins>
</build>

您可以在此处找到上述部分的文档:https://maven.apache.org/pom.html


1
太好了,额外的 combine.self="override" 起作用了。如果你重新定义了值,为什么不需要它呢?但是当你设置一个空值时就需要它了,有什么原因吗? - user1589188
1
继承标签应该放在哪个配置中,父级还是子级?Apache文档也没有指明。 - Dex Stakker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接