Maven:如何通过自定义标志禁用Spring Boot项目中的指定插件
实现通过自定义Maven参数禁用springdoc-openapi-maven-plugin
当然可以实现这个需求!下面给你两种简单直接的配置方案,都能满足你通过-Dexc参数禁用springdoc-openapi-maven-plugin的要求:
方案1:通过属性绑定直接控制插件skip状态
这是最简洁的方式,直接把插件的skip配置和自定义参数关联起来:
- 首先在pom.xml的
<properties>节点中添加一个属性,默认启用插件,当传入-Dexc=true时切换为禁用:
<properties> <!-- 默认启用插件,传入-Dexc=true时禁用 --> <skip.springdoc.plugin>${exc:false}</skip.springdoc.plugin> </properties>
- 修改你的springdoc插件配置,添加
<skip>配置绑定上面的属性:
<plugin> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-maven-plugin</artifactId> <version>${springdoc-openapi-maven.version}</version> <configuration> <apiDocsUrl>http://localhost:XXXX/v3/api-docs</apiDocsUrl> <outputDir>${project.basedir}/openapi</outputDir> <!-- 绑定自定义属性控制是否跳过插件执行 --> <skip>${skip.springdoc.plugin}</skip> </configuration> <executions> <execution> <phase>integration-test</phase> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin>
使用方式:
- 正常构建(插件会运行):
mvn clean install - 禁用插件构建:
mvn clean install -Dexc=true
如果你想简化成只输入
-Dexc(不需要加=true),可以保持属性配置不变,但要注意Maven中单独的-Dexc会把exc属性设为空字符串,部分场景下可能需要额外调整,或者用方案2的Profile方式更稳妥。
方案2:通过Maven Profile实现条件禁用
这种方式更灵活,适合需要在禁用插件时同时调整其他配置的场景:
在pom.xml的<profiles>节点中添加一个专门用来禁用springdoc插件的Profile:
<profiles> <profile> <id>disable-springdoc</id> <!-- 当传入-Dexc参数时自动激活这个Profile --> <activation> <property> <name>exc</name> </property> </activation> <build> <plugins> <plugin> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-maven-plugin</artifactId> <configuration> <!-- 激活Profile时跳过插件执行 --> <skip>true</skip> </configuration> </plugin> </plugins> </build> </profile> </profiles>
使用方式:
- 正常构建(插件会运行):
mvn clean install - 禁用插件构建:
mvn clean install -Dexc(这里不需要加=true,只要传入-Dexc就会激活Profile)
推荐方案
如果只是单纯禁用插件,方案1更简洁直接;如果需要在禁用插件的同时调整其他Maven配置(比如跳过测试、修改打包参数等),方案2的Profile方式会更合适。
内容的提问来源于stack exchange,提问作者Guilty
相关产品推荐
相关产品推荐

