[BUG][Java][spring][maven] FileNotFoundException when spec file is present in another jar
Created by: ashuto-sh
Description
When using openapi-generator-maven-plugin to generate sources with a yaml spec present in another jar, the models and other operation files are generated successfully but towards the end FileNotFoundException is thrown. Probably this might be due to classloader.
openapi-generator version
4.0.0-beta
Pom file configuration
...
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.0.0-beta</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>/openapi.yaml</inputSpec>
<language>spring</language>
<library>spring-mvc</library>
<configOptions>
<useTags>false</useTags>
<invokerPackage>${project.groupId}.backend.generated.server</invokerPackage>
<apiPackage>${project.groupId}.backend.generated.server.api</apiPackage>
<modelPackage>${project.groupId}.backend.generated.server.model</modelPackage>
</configOptions>
<modelNameSuffix>Model</modelNameSuffix>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>${swagger.spec.artifactId}</artifactId>
<version>${swagger.spec.version}</version>
</dependency>
</dependencies>
</plugin>
...
Suggest a fix
Probable solution would be to use something similar to
this.getClass().getClassLoader().getResourceAsStream(inputSpec)
instead of
File inputSpecFile = new File(inputSpec);
at following line