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

How to generate maven-jar-plugin 3.1.2 version in pom by 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>

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

Swagger Codegen 允许您使用自定义模板覆盖 built-in 模板。您可以按如下方式执行此操作:

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

  2. pom.mustache 模板从此 link 下载到该文件夹​​。
    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 中,在 <templateDirectory> 参数中指定 codegen-templates 文件夹的路径:

    <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.mustache 模板生成 pom.xml