java - 如何使用 Java 和 Maven 将所有 swagger 文件打包成一个文件

标签 java maven openapi swagger-2.0

我正在使用 Java 8、Spring Boot 和 Maven。

我有一个很大的 OpenAPI 文件(swagger 2.0 yaml),我想将它拆分成多个文件。

但我想将所有内容打包到一个文件中,然后再导入到我的 API 管理器中。

我知道我可以使用 node.js 命令做到这一点:

swagger-cli bundle openapi.yaml --outfile _build/openapi.yaml --type yaml

引用:https://davidgarcia.dev/posts/how-to-split-open-api-spec-into-multiple-files/

问题:

有一种方法可以用 Maven 做到这一点吗?像一些构建器插件放入 pom.xml 并在目标文件夹中生成包?

最佳答案

Swagger Codegen Maven plugin可以将多文件 OpenAPI 定义捆绑到单个文件中。为 OpenAPI 2.0 使用插件版本 2.x,版本 3.x对于 OpenAPI 3.0。请注意,2.x 和 3.x 版本具有不同的 groupId 和略有不同的配置值。

OpenAPI 2.0 示例:

<plugin>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>2.4.26</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/openapi.yaml</inputSpec>

                <!-- Use 'swagger-yaml' to get resolved YAML or 'swagger' to get resolved JSON -->
                <language>swagger-yaml</language>

                <configOptions>
                    <!-- Default file name is swagger.yaml or swagger.json -->
                    <outputFile>openapi.yaml</outputFile>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

OpenAPI 3.0 示例:

<plugin>
    <groupId>io.swagger.codegen.v3</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>3.0.33</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/openapi.yaml</inputSpec>

                <!-- Use 'openapi-yaml' to get resolved YAML or 'openapi' to get resolved JSON -->
                <language>openapi-yaml</language>

                <!-- Default is ${project.build.directory}/generated-sources/swagger -->
                <output>_build</output>

                <configOptions>
                    <!-- Default file name is openapi.yaml or openapi.json -->
                    <outputFile>openapi.yaml</outputFile>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

关于java - 如何使用 Java 和 Maven 将所有 swagger 文件打包成一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71149899/

相关文章:

java - android setAdapter 不触发 getView 或不构建 ListView

java - 使用sharedPreferences保存颜色和删除线文本

Java : VolatileImage slower than BufferedImage

python - 类型错误 : Object of type 'type' is not JSON serializable

java - 带有 springdoc-openapi-ui 的 swagger-codegen-maven-plugin

java - 使用 Hibernate 4.1 进行 SchemaExport 期间出现 Hsqldb 错误

java - 不能消费内容类型-RestEasy

java - sbt 托管依赖检索错误的版本

java - Maven Bundle 插件嵌入 deps 排除文件或包

swagger - Open API 3 - 如何描述一个整数数组但可以是单个项目的查询参数?