You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何跳过pom.xml中Swagger Codegen Maven插件?skip标签失效问题

解决swagger-codegen-maven-plugin的标签不生效问题

问题描述

需求为:在pom.xml中默认设置swagger-codegen-maven-plugin跳过执行(值为true),在check.sh脚本执行时设为false。但已在插件execution的configuration中添加<skip>true</skip>标签,该标签未生效。

现有pom.xml属性配置

<properties>
    <swagger.codegen.plugin.version>3.0.0-rc0</swagger.codegen.plugin.version>
    <swagger.codegen.plugin.version>3.0.3</swagger.codegen.plugin.version>
    <swagger.codegen.generators.version>1.0.3</swagger.codegen.generators.version>
    <swagger.lang>jaxrs-jersey</swagger.lang>
</properties>

现有check.sh脚本

mvn validate -Dmaven.exec.skip -DskipTests -P copyright,license

现有swagger-codegen-maven-plugin配置

<plugin>
    <groupId>io.swagger.codegen.v3</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>${swagger.codegen.plugin.version}</version>
    <executions>
        <execution>
            <id>generate-folder-pojo</id>
            <phase>validate</phase>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <skip>true</skip>
                <inputSpec>${swagger.inputSpec}/folder_definition.json</inputSpec>
                <language>${swagger.lang}</language>
                <templateDirectory>${swagger.api}/template</templateDirectory>
                <verbose>false</verbose>
            </configuration>
        </execution>
    </executions>
</plugin>

解决步骤

1. 在pom.xml中定义全局跳过属性

在properties节点新增自定义属性,默认设为true,用于全局控制插件是否跳过:

<properties>
    <swagger.codegen.plugin.version>3.0.3</swagger.codegen.plugin.version> <!-- 注意:删除重复的版本定义,保留最新的3.0.3即可 -->
    <swagger.codegen.generators.version>1.0.3</swagger.codegen.generators.version>
    <swagger.lang>jaxrs-jersey</swagger.lang>
    <swagger.codegen.skip>true</swagger.codegen.skip> <!-- 新增全局控制属性 -->
</properties>

2. 修改插件配置,引用全局属性

将插件configuration里的硬编码<skip>true</skip>替换为引用全局属性:

<plugin>
    <groupId>io.swagger.codegen.v3</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>${swagger.codegen.plugin.version}</version>
    <executions>
        <execution>
            <id>generate-folder-pojo</id>
            <phase>validate</phase>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <skip>${swagger.codegen.skip}</skip> <!-- 引用全局属性 -->
                <inputSpec>${swagger.inputSpec}/folder_definition.json</inputSpec>
                <language>${swagger.lang}</language>
                <templateDirectory>${swagger.api}/template</templateDirectory>
                <verbose>false</verbose>
            </configuration>
        </execution>
    </executions>
</plugin>

3. 修改check.sh脚本,动态覆盖属性值

在脚本执行时,通过-D参数覆盖全局属性为false,确保执行脚本时插件正常运行:

mvn validate -Dswagger.codegen.skip=false -Dmaven.exec.skip -DskipTests -P copyright,license

额外注意点

  • 原pom.xml中重复定义了swagger.codegen.plugin.version,Maven会取最后一个定义的版本,建议删除重复项避免混淆。
  • 若问题仍存在,可尝试升级swagger-codegen-maven-plugin至更稳定的版本(如3.0.46),确保插件对<skip>参数的支持正常。

内容的提问来源于stack exchange,提问作者vaishnavi banait

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:43:26