gpt4 book ai didi

maven - 适用于 OpenAPI 3.0 的 Swagger Codegen(带有 Maven 插件)

转载 作者:行者123 更新时间:2023-12-02 03:26:08 27 4
gpt4 key购买 nike

我想对 OpenAPI 3.0 YAML 文件使用 Swagger Codegen。我看到Swagger Codegen 3.0.0-rc0可用。但当我尝试使用它时,我遇到了问题。详情如下:

我的pom.xml带有 swagger-codegen 插件的文件:

<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.0-rc0</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${basedir}/src/main/resources/mySpec.yaml</inputSpec>
<output>target/generated-sources</output>
<language>spring</language>
<generateApis>false</generateApis>
<modelPackage>com.kj.model</modelPackage>
<apiPackage>com.kj</apiPackage>
<configOptions>
<sourceFolder>swagger</sourceFolder>
<library>spring-mvc</library>
<interfaceOnly>true</interfaceOnly>
<useBeanValidation>true</useBeanValidation>
<dateLibrary>java8</dateLibrary>
<java8>true</java8>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>

使用上面的插件,当我运行 Maven 构建时,我得到了这个 ServiceConfigurationError ,这是堆栈跟踪:

Exception in thread "main" java.util.ServiceConfigurationError: io.swagger.codegen.CodegenConfig: Provider io.swagger.codegen.languages.java.JavaClientCodegen not found
at java.util.ServiceLoader.fail(ServiceLoader.java:239)
at java.util.ServiceLoader.access$300(ServiceLoader.java:185)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:372)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at io.swagger.codegen.CodegenConfigLoader.forName(CodegenConfigLoader.java:19)
at io.swagger.codegen.config.CodegenConfigurator.toClientOptInput(CodegenConfigurator.java:392)
at io.swagger.codegen.plugin.CodeGenMojo.execute(CodeGenMojo.java:512)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)

为了解决这个问题,我添加了 swagger-codegen-generators pom 文件的 Maven 插件部分中的依赖项:

<dependencies>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-generators</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
</dependencies>

因此,前面提到的问题得到了解决,但现在我看到了这个 NPE

java.lang.NullPointerException
at io.swagger.codegen.languages.SpringCodegen.preprocessOpenAPI(SpringCodegen.java:429)
at io.swagger.codegen.DefaultGenerator.configureGeneratorProperties(DefaultGenerator.java:199)
at io.swagger.codegen.DefaultGenerator.generate(DefaultGenerator.java:716)
at io.swagger.codegen.plugin.CodeGenMojo.execute(CodeGenMojo.java:534)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)

正如您已经注意到的那样,我正在使用 <language>spring</language><library>spring-mvc</library> 。请告诉我 codegen 是否适用于使用这些配置的 3.0.0-rc0。

注意:我看了这个旧的 post类似但当时 3.0.0-rc0不可用。

最佳答案

要将 Swagger Codegen 与 OpenAPI 3.0.0 规范的 Maven 插件结合使用,您可以考虑使用 OpenAPI Generator相反(这是 Swagger Codegen 的社区驱动版本)。

<dependency>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>3.3.4</version>
</dependency>

引用号:https://github.com/OpenAPITools/openapi-generator#12---artifacts-on-maven-central

(请参阅 Q&A 了解我们为何 fork Swagger Codegen)

关于maven - 适用于 OpenAPI 3.0 的 Swagger Codegen(带有 Maven 插件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49616529/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com