Reputation: 137
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
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