当前位置: 首页 > 知识库问答 >
问题:

OpenAPI 3.0的Swagger Codegen(带有maven插件)

张鹏云
2023-03-14
<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>
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)
<dependencies>
  <dependency>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen-generators</artifactId>
    <version>1.0.0-SNAPSHOT</version>
  </dependency>
</dependencies>
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)

注意:我查看了这篇类似的旧文章,但当时3.0.0-rc0不可用。

共有1个答案

孔逸春
2023-03-14

为了将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

(请参阅关于我们为什么分叉霸气码根的问答)

 类似资料:
  • 我正在构建一个uber jarfile,但用

  • 我正在使用swagger codegen maven插件(2.2.2)从inputSpec生成API和模型类。语言是Spring,库是Spring boot。 昂首阔步生成的API类是用@Controller注释注释的,是否有任何配置选项可以将其更改为用@RestController注释API类? 技术堆栈 springboot-2.2.5java-jdk11maven-3.6.1swagger-

  • 我试着运行mvn声纳:声纳,我得到了这个: [ERROR]无法在YamarinArtifactId项目上执行goal org.codehaus.mojo:sonar-maven-plugin:2.0:sonar(默认-CLI):Can not execute sonar:FxCop执行失败。FxCop执行失败,返回代码为“521”。有关更多信息,请查看FxCop文档。->[帮助1] 你知道该怎么办

  • 我想在一个生成的服务中使用springdoc-openapi-ui,但是生成的API使用了错误的包,它使用io.swagger.annotations而不是io.swagger.v3.oas.annotations 我能为此做些什么?

  • 我在groovy中编写了一个Gradle插件,并使用Gradle来构建它。我有一个本地网络艺术工厂服务器,我使用Gradle中的Gradle艺术工厂插件和maven-发布插件将结果发布到该服务器。我有另一个Gradle构建脚本,它依赖于此插件作为依赖项。如果我用特定的版本列出我的依赖项,我就能够让这一切正常工作。我尝试过使用maven版本范围(例如,“[1.0,2.0)”),但这失败了,因为它找不

  • 我正在开发一个大的应用程序,我们在代理中使用Mavem bundle插件,使其变小!我在导入一些需要的库以处理PDFbox所需的某种图像(jpeg2000和jbig2)时遇到问题。 这是我的pom(一部分) 我修复了导入包,我不再有警告了! 这是我的nethod,pdfBox使用这些库,我在try/catch块中遇到了一个异常! } 在IntelliJ中调试时,我得到了这个! 组织。阿帕奇。pdf