swagger-api / swagger-parser

Swagger Spec to Java POJOs
http://swagger.io
Apache License 2.0
782 stars 528 forks source link

deduplicate error while assembling project with swagger-parser dependency in it. #2126

Open philemone opened 2 days ago

philemone commented 2 days ago

Hi guys.

I've recently updated swagger-parser from 2.1.15 to 2.1.22 and found out there is an error while trying to assembly project with swagger-parser dependency.

To reproduce error all you have to do is create empty project (I've used empty scala project), add swagger-parser as dependency and try to assembly it (I've used sbt assembly). In swagger-parser library there are classes with the same name but somehow different - so it is not clear which class should be used.

[error] /user/.cache/coursier/v1/https/repo1.maven.org/maven2/io/swagger/parser/v3/swagger-parser-safe-url-resolver/2.1.22/swagger-parser-safe-url-resolver-2.1.22.jar:io/swagger/v3/parser/urlresolver/PermittedUrlsChecker.class
[error] /user/.cache/coursier/v1/https/repo1.maven.org/maven2/io/swagger/swagger-parser-safe-url-resolver/1.0.70/swagger-parser-safe-url-resolver-1.0.70.jar:io/swagger/v3/parser/urlresolver/PermittedUrlsChecker.class

[error] deduplicate: different file contents found in the following:
[error] /user/.cache/coursier/v1/https/repo1.maven.org/maven2/io/swagger/parser/v3/swagger-parser-safe-url-resolver/2.1.22/swagger-parser-safe-url-resolver-2.1.22.jar:io/swagger/v3/parser/urlresolver/matchers/UrlPatternMatcher.class
[error] /user/.cache/coursier/v1/https/repo1.maven.org/maven2/io/swagger/swagger-parser-safe-url-resolver/1.0.70/swagger-parser-safe-url-resolver-1.0.70.jar:io/swagger/v3/parser/urlresolver/matchers/UrlPatternMatcher.class

[error] deduplicate: different file contents found in the following:
[error] /user/.cache/coursier/v1/https/repo1.maven.org/maven2/io/swagger/parser/v3/swagger-parser-safe-url-resolver/2.1.22/swagger-parser-safe-url-resolver-2.1.22.jar:io/swagger/v3/parser/urlresolver/utils/NetUtils.class
[error] /user/.cache/coursier/v1/https/repo1.maven.org/maven2/io/swagger/swagger-parser-safe-url-resolver/1.0.70/swagger-parser-safe-url-resolver-1.0.70.jar:io/swagger/v3/parser/urlresolver/utils/NetUtils.class

[error] Total time: 2 s, completed Oct 11, 2024, 11:27:41 AM

Same problem occurred with 2.1.21, I didn't try with older versions.

I've bypassed problem using MergeStrategy but it doesn't sound like a permanent solution.

Cheers!

philemone commented 2 days ago

It is worth to mention that it can also lead to unexpected behaviors - when application can use different files in different situation - depends which one will be first on classPath