[
https://issues.apache.org/jira/browse/MDEP-651?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Olivier Lamy closed MDEP-651.
-----------------------------
Resolution: Fixed
pr merged
> unpack-dependencies should warn when it overrides extracted files on macos
> (case insensitive FS)
> ------------------------------------------------------------------------------------------------
>
> Key: MDEP-651
> URL: https://issues.apache.org/jira/browse/MDEP-651
> Project: Maven Dependency Plugin
> Issue Type: Wish
> Components: unpack-dependencies
> Affects Versions: 3.1.1
> Reporter: Hasnae Rehioui
> Assignee: Maarten Mulders
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> *Background :*
> We are upgrading to a recent version of aspose-imaging and ran into an issue
> with our `unpack-dependencies` configuration when ran locally *on macos*
> This is affecting our dev loop mostly, you can reproduce it with
> {code:java}
> git clone https://github.com/viqueen/maven-playground
> cd maven-playground
> mvn test{code}
> long story short :
> `maven-dependency-plugin` has the `unpack-dependencies` mojo that relies on
> plexus un-archiver which in a file system like mac (not case sensitive) ,
> might end up overriding files , leading in some cases to a corrupted class
> path , aspose-imaging library is an example of that : it contains classes and
> interfaces named as follow : com.aspose.internal.imaging.gq/aq (interface) ,
> com.aspose.internal.imaging.gq/aQ (class implementing the interface) ,
> notice the case sensitive naming
> so on mac , the plugin will override the aq interface with the content of aQ
> type , leading to a NoClassDefFoundError because the file name and its
> content do not match
> {code:java}
> java.lang.NoClassDefFoundError: com/aspose/imaging/internal/gq/aq (wrong
> name: com/aspose/imaging/internal/gq/aQ)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
> at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
> {code}
> *Workaround :*
> turns out our project config no longer requires unpacking dependencies so we
> disabled the thing
> *Suggestion :*
> not sure this is even fixable , but would be nice to have some debug /
> warning logs that it is happening so developers can diagnose errors more
> easily; basically throw in some love onto
> [https://github.com/viqueen/plexus-archiver/blob/master/src/main/java/org/codehaus/plexus/archiver/AbstractUnArchiver.java#L346]
> in our particular use case , we are consuming the plugin through
> [https://bitbucket.org/atlassian/amps/src/903a1ce408da5b8500ed0d7e0e5701eb83d8cde4/amps-maven-plugin/src/main/java/com/atlassian/maven/plugins/amps/MavenGoals.java?at=8.0-stable&fileviewer=file-view-default#MavenGoals.java-458]
> , these internals are not exactly common knowledge and the logs were not
> helping either, devs knew it was FS related though just not clear on what
> triggers the problem
> so optionally failing the build if/when it happens could point our devs on
> the right track much faster
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)