Closed Saljack closed 2 months ago
There is a workaround how to use the latest openapi-generator
. You can use openapi-generator-maven-plugin
7.6.0 and upgrade dependency for openapi-generator
:
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<!-- Old version maven plugin -->
<version>7.6.0</version>
<dependencies>
<!-- Newer openapi-generator -->
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator</artifactId>
<version>7.7.0</version>
</dependency>
</dependencies>
</plugin>
Bug Report Checklist
Description
18576 PR for openapi-generator-maven-plugin inputSpec -- Allow jar: URLs introduced support for rewriting
inputSpec
in openapi-generator-maven-plugin but it broke references to external files.We have a similar maven plugin configuration:
Then we have multiple OpenAPI files in artifacts (e.g. openapi.yaml, model-openapi.yaml) and use references between them.
During the build with openapi-generator-maven-plugin it fails and throws this exception:
As you can see the problem is with resolved path. The correct path should be
./openapi/model-openapi.yaml
and not just./model-openapi.yaml
.Therefore you cannot use references to external files if these files are not in the root path of a jar.
openapi-generator version
openapi-generator 7.7.0 it works fine with 7.6.0
OpenAPI declaration file content or url
Steps to reproduce
Try to build with
openapi-generator-maven-plugin
Related issues/PRs
This PR https://github.com/OpenAPITools/openapi-generator/pull/18576 broke it.
This is connected to
java.net.URI.resolve()
that is used internally inswagger-parser
https://bugs.openjdk.org/browse/JDK-8020755Suggest a fix
Process only
inputSpec
if it starts withjar:
or introduce a new configuration for disabling this processing.