我在项目中使用父POM和子POM:
父POM:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-xjc-plugin</artifactId>
<executions>
<execution>
...
<configuration>
...
<xsdOptions>
<xsdOption>
<extensionArgs>
<extensionArg>-XNullable</extensionArg>
<arg>-encoding</arg>
<arg>UTF-8</arg>
</extensionArgs>
</xsdOption>
</xsdOptions>
</configuration>
</execution>
</executions>
</plugin>
</pluginManagement>
我在子POM中的目标是删除<extensionArg>-XNullable</extensionArg>
参数。
我使用combine.self="override"
属性尝试了这个:
<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-xjc-plugin</artifactId>
<configuration>
<xsdOptions>
<xsdOption>
<extensionArgs combine.self="override">
<arg>-encoding</arg>
<arg>UTF-8</arg>
</extensionArgs>
</xsdOption>
</xsdOptions>
</configuration>
</plugin>
</plugins>
</build>
但这不起作用。有效的配置仍然是:
<xsdOptions>
<xsdOption>
<extensionArgs combine.self="override">
<extensionArg>-XNullable</extensionArg>
<arg>-encoding</arg>
<arg>UTF-8</arg>
</extensionArgs>
</xsdOption>
</xsdOptions>
如何在Maven合并过程中如何从配置中删除<extensionArg>-XNullable</extensionArg>
?
Maven:3.3.3
答案 0 :(得分:2)
在您的父POM中,您正在为插件的特定执行添加<extensionArg>-XNullable</extensionArg>
(在<execution>
标记元素内)。但是,在您的子POM中,您将覆盖常规配置(即,不是特定于任何执行的配置)。
因此,不会覆盖该特定执行的配置。您需要在特定执行中移动子POM中的插件配置。另一种可能性是将父POM的配置移动到常规配置而不是特定于执行的配置。