【问题标题】:combine.self="override" doesn't seem to workcombine.self="override" 似乎不起作用
【发布时间】:2016-03-16 02:17:24
【问题描述】:

我在我的项目中使用父子 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 中的目标是删除 &lt;extensionArg&gt;-XNullable&lt;/extensionArg&gt; 参数。

我通过使用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 合并过程中从配置中删除 &lt;extensionArg&gt;-XNullable&lt;/extensionArg&gt;

Maven:3.3.3

【问题讨论】:

  • 你有没有通过mvn -X ...检查配置
  • 是的,看最后一个小sn -p(有效配置)。

标签: maven


【解决方案1】:

在您的父 POM 中,您正在将 &lt;extensionArg&gt;-XNullable&lt;/extensionArg&gt; 添加到插件特定执行的配置中(在 &lt;execution&gt; 标签元素内)。但是,在您的子 POM 中,您将覆盖常规配置(即配置不特定于任何执行)。

因此,特定执行的配置不会被覆盖。您需要在特定执行中移动子 POM 中的插件配置。另一种可能性是将父 POM 的配置移动到通用配置而不是特定于执行的配置。

【讨论】:

  • 像魅力一样工作!谢谢。
猜你喜欢
  • 2016-11-29
  • 2016-02-01
  • 2020-09-23
  • 2010-12-05
  • 2011-06-14
  • 2015-01-10
  • 2016-02-24
  • 2011-01-18
  • 2018-06-20
相关资源
最近更新 更多