跳过父项目中的 maven 插件

Posted

技术标签:

【中文标题】跳过父项目中的 maven 插件【英文标题】:Skip maven plugin in parent project 【发布时间】:2021-10-31 23:31:55 【问题描述】:

我需要在父 pom 项目中跳过插件执行,但在子项目中执行它。这是怎么做到的?子项目使用 cxf-codegen-plugin 和路径 $basedir/src/main/resources/$wsdl-name.wsdl 中的 wsdl,但父项目没有 wsdl。 p>

构建 => 父 pom.xml 中的插件

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-codegen-plugin</artifactId>
                <version>$cxf.version</version>
                <executions>
                    <execution>
                        <id>generate-sources</id>
                        <phase>generate-sources</phase>
                        <configuration>
                            <sourceRoot>$project.build.directory/generated-sources/cxf</sourceRoot>
                            <wsdlOptions>
                                <wsdlOption>
                                    <wsdl>$basedir/src/main/resources/$wsdl-name.wsdl</wsdl>
                                </wsdlOption>
                            </wsdlOptions>
                        </configuration>
                        <goals>
                            <goal>wsdl2java</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
                ...
        </plugins>
    </build>

【问题讨论】:

【参考方案1】:

您将上述插件配置移至&lt;pluginManagement&gt;。然后添加到父 POM 的 &lt;plugins&gt; 部分:

<plugin>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-codegen-plugin</artifactId>
  <executions>
     <execution>
       <id>generate-sources</id>
       <inherited>false</inherited>
       <phase>none</phase>
     </execution>
  </executions>
</plugin>

【讨论】:

以上是关于跳过父项目中的 maven 插件的主要内容,如果未能解决你的问题,请参考以下文章

Maven - 根据属性激活子配置文件

使用 Maven 执行器跳过模块

在 JsonDeserializer 中正确跳过父级

maven项目打包和编译跳过单元测试和javadoc

Java Maven 项目中的 Docker 指令跳过测试

一般继承 /虚方法 跳过父类执行 祖父类的方法