[ https://issues.apache.org/jira/browse/MNG-6506?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16674425#comment-16674425 ]
Andreas Veithen commented on MNG-6506: -------------------------------------- A minimal test case can be found here: [https://github.com/veithen/MNG-6506]. The project builds successfully on Java 8 and fails on Java 9. > Mojos are unable to load package annotations on Java >= 9 > --------------------------------------------------------- > > Key: MNG-6506 > URL: https://issues.apache.org/jira/browse/MNG-6506 > Project: Maven > Issue Type: Bug > Components: Class Loading > Affects Versions: 3.6.0 > Reporter: Andreas Veithen > Priority: Major > > On Java 9 and above, calls to {{java.lang.Package.getAnnotation(Class)}} from > within a Mojo always return {{null}} (unless the {{package-info}} class has > been loaded by some other means before). > The reason appears to be an incompatibility between Java 9 and Plexus > Classworlds: > * Java 9 ultimately calls {{findClass}} (instead of {{loadClass}}) to get the > {{package-info}} class. > * The {{findClass}} implementation in {{ClassRealm}} always throws > {{ClassNotFoundException}}: > https://github.com/sonatype/plexus-classworlds/blob/plexus-classworlds-2.5.2/src/main/java/org/codehaus/plexus/classworlds/realm/ClassRealm.java#L275. > This in particular affects plugins that interact with the JAXB API because it > relies on package annotations. A workaround is to preload the required > {{package-info}} classes using {{loadClass}}; see e.g. > http://svn.apache.org/viewvc?rev=1845026&view=rev. -- This message was sent by Atlassian JIRA (v7.6.3#76005)