swagger-codegen-maven-plugin如何在pom中生成Maven-jar-plugin 3.1.2版本

时间:2019-07-16 09:25:04

标签: swagger-codegen-maven-plugin

我正在使用swagger-codegen-maven-plugin 2.4.7版本生成项目。它生成maven-jar-plugin 2.6版本,但我需要3.1.2版本。

是否可以生成自定义插件版本?

生成的pom.xml:

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <goals>
                        <goal>jar</goal>
                        <goal>test-jar</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
            </configuration>
        </plugin>

需要pom.xml:

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.2</version>
            <executions>
                <execution>
                    <goals>
                        <goal>test-jar</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
            </configuration>
        </plugin>

1 个答案:

答案 0 :(得分:0)

Swagger Codegen的输出基于Mustache模板。例如,可以在此处使用Java客户端的pom.xml模板+ jersey2库:
https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/pom.mustache

Swagger Codegen可让您使用自定义模板覆盖内置模板。您可以按照以下步骤进行操作:

  1. 在项目中创建一个文件夹(例如codegen-templates)。

  2. 从此链接下载pom.mustache模板到该文件夹​​。
    https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen/src/main/resources/Java/libraries/jersey2/pom.mustache

  3. 根据需要编辑下载的pom.mustache并更新maven-jar-plugin的版本和配置。

  4. 在您的pom.xml中,在codegen-templates参数中指定<templateDirectory>文件夹的路径:

    <plugin>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-codegen-maven-plugin</artifactId>
        <version>2.4.7</version>
        <executions>
            <execution>
                <goals>
                    <goal>generate</goal>
                </goals>
                <configuration>
                    <inputSpec>https://petstore.swagger.io/v2/swagger.yaml</inputSpec>
                    <language>java</language>
                    <library>jersey2</library>
    
                    <!-- The folder containing your custom pom.mustache -->
                    <templateDirectory>${project.basedir}/codegen-templates</templateDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

现在Swagger Codegen将基于您的自定义pom.xml模板生成pom.mustache