swagger maven plgin执行不独立运行

ymdaylpp  于 2023-08-03  发布在  Maven
关注(0)|答案(1)|浏览(90)

我使用io.swagger.core.v3中最新的swagger-maven-plugin来生成我的静态swagger API文档。在我的项目中,我必须将api分开,所以我想在一个包进程中为每个api获得一个json和yml表示。

<plugin>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-maven-plugin</artifactId>
                <version>2.2.6</version>
                <configuration>
                    <outputPath>${basedir}/target/</outputPath>
                    <outputFormat>JSONANDYAML</outputFormat>
                    <prettyPrint>true</prettyPrint>
                </configuration>
                <executions>
                    <execution>
                        <id>1</id>  
                        <goals>
                            <goal>resolve</goal>
                        </goals>
                        <configuration>
                            <resourcePackages>
                                <resourcePackage>de.test.rest</resourcePackage>
                            </resourcePackages>
                            <outputFileName>swagger</outputFileName>
                            <configurationFilePath>${basedir}/src/main/resources/openApiConfig.yml</configurationFilePath> 
                        </configuration>
                        
                </execution>
                <execution>
                    <id>2</id>
                    <goals>
                        <goal>resolve</goal>
                    </goals>
                    <configuration>
                        <resourcePackages>
                            <resourcePackage>de.test.secondAPI</resourcePackage>
                        </resourcePackages>
                        <outputFileName>secondAPI</outputFileName>
                        <configurationFilePath>${basedir}/src/main/resources/secondOpenApiConfig.yml</configurationFilePath> 
                        
                    </configuration>
                </execution>
                </executions>
            </plugin>

字符串

**问题:该执行为每个执行创建预期的json和yml文件

  • swagger.yml
  • swagger.json
  • secondAPI.yml
  • secondAPI.json

问题是,secondAPI文件是swagger文件的副本。我已经阅读了文档,我认为插件根目录中的配置在多个执行之间共享。执行标记中的配置在每次执行时单独使用。
是否有办法使用单独的配置并行运行这些执行?或者是插件本身的问题?

EDIT:当exections标记中只定义了一个执行时,每个执行都按预期工作。

qacovj5a

qacovj5a1#

我也有同样的问题!!!:-(
解决方法:在第二个配置中使用此另一个插件:

<plugin>
              <groupId>io.openapitools.swagger</groupId>
              <artifactId>swagger-maven-plugin</artifactId>
              <configuration>
                <resourcePackages>
                  <package>es.caib.carpeta.api.externa.certificats</package>
                  <package>es.caib.carpeta.api.externa.config</package>
                </resourcePackages>
                <outputDirectory>${project.basedir}/openapi/</outputDirectory>
                <outputFilename>openapi_certificat</outputFilename>
                <outputFormats>JSON,YAML</outputFormats>
                <prettyPrint>true</prettyPrint>
              </configuration>
              <executions>
                <execution>
                  <goals>
                    <goal>generate</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>

字符串

相关问题