Swagger Codegen (mit maven-plugin) für die Open API 3.0

Will ich mit Swagger Codegen für Open API 3.0 YAML-Datei. Und ich sehe Swagger Codegen 3.0.0-rc0 verfügbar ist. Aber wenn ich versuche zu verwenden, dass ich laufen in Probleme. Im folgenden sind die details:

Meine pom.xml Datei mit dem Fors-codegen-plugin:

<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>

Mit den oben genannten plugin, wenn ich das maven-build, habe ich diese ServiceConfigurationError, hier ist der stack trace:

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)

Um dieses Problem zu beheben, fügte ich swagger-codegen-generators Abhängigkeit innerhalb des maven-plugin - Sektion der pom-Datei:

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

Diese mit dem zuvor erwähnten Problem habe gelöst, aber jetzt sehe ich diese 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)

Als hättest du bereits festgestellt, dass ich mit <language>spring</language> und <library>spring-mvc</library>. Bitte lassen Sie mich wissen, wenn codegen gearbeitet hat, für jemanden, der für 3.0.0-rc0 mit diesen Konfigurationen.

Hinweis: sah ich diese alten post, die ist ähnlich, aber damals 3.0.0-rc0 war nicht verfügbar.

Sie erstellen könnte ein Problem auf dem repository, da dies ein release candidate und zeigen Sie auf die Linie in Frage, github.com/swagger-api/swagger-codegen/blob/v3.0.0-rc0/modules/...

InformationsquelleAutor Kuldeep Jain | 2018-04-02

Schreibe einen Kommentar