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
|
File inputSpecFile = new File(inputSpec); |
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
instead of
at following line
openapi-generator/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java
Line 359 in 9334dd3