Shubham Shekhar
Shubham Shekhar

Reputation: 137

Swagger-maven-plugin-jakarta not generating openAPI.yaml files

For generating swagger.yaml I am having below swagger-plugin config in my pom.xml:-

<plugin>
        <groupId>io.swagger.core.v3</groupId>
    <artifactId>swagger-maven-plugin-jakarta</artifactId>
    <version>2.2.22</version>
        <configuration>
         <outputDirectory>${project.build.directory}</outputDirectory>
            <outputFilename>openAPI</outputFilename>
            <outputFormats>JSON,YAML</outputFormats>
            <prettyPrint>true</prettyPrint>
          <resourcePackages>
            <resourcePackage>org.onap.so.apihandlerinfra</resourcePackage>
            <resourcePackage> org.onap.so.apihandlerinfra.tenantisolation</resourcePackage>
          </resourcePackages>
        </configuration>
        <executions>
            <execution>
              <phase>compile</phase>
              <goals>
                <goal>resolve</goal>
              </goals>
            </execution>
          </executions>
      </plugin>

If I run mvn clean install I get an error:-

[ERROR] Error resolving API specification

java.lang.NullPointerException

  at java.util.Objects.requireNonNull (Objects.java:208)

  at sun.nio.fs.WindowsFileSystem.getPath (WindowsFileSystem.java:216)

  at java.nio.file.Path.of (Path.java:147)

  at java.nio.file.Paths.get (Paths.java:69)

  at io.swagger.v3.plugin.maven.SwaggerMojo.execute (SwaggerMojo.java:114)

  at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)

  at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)

  at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)

  at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)

  at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)

  at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)

  at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)

  at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)

  at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)

  at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)

  at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)

  at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)

  at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)

  at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)

  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)

  at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:77)

  at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)

  at java.lang.reflect.Method.invoke (Method.java:568)

  at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)

  at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)

  at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)

  at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)

If I change the goal from resolve to generate I get error as :-

Could not find goal 'generate' in plugin io.swagger.core.v3:swagger-maven-plugin-jakarta:2.2.22 among available goals resolve

Can you help me to write the correct plugin configuration? I am using java 17 and spring boot 3.3.2. Tried to follow some steps on changing goals but those do not work

Upvotes: 0

Views: 220

Answers (1)

Shubham Shekhar
Shubham Shekhar

Reputation: 137

I found the reason for the error was because I was using outputDirectory instead of outputPath in the tag, so It was failing. Thanks @JoachimRohde for providing with the link.

Upvotes: 2

Related Questions