FWIW, building the jar as a multi-release jar did fix this problem, but building a multi-release jar with Maven is a bear to do. I have to invoke the compiler plugin first to compile the pre-java9 classes using the java 7 or 8 compiler, call the maven-bundle-plugin, call the maven-helper-plugin to add the java9 source directory, call the compiler plugin again with the java9 toolchain, call the antrun plugin to move the java9 classes to the proper META-INF location (because there is no way to tell the compiler plugin to put them in the correct place and the antrun plugin doesn’t support toolchains so it can’t be used to compile) and then call the jar plugin. The maven-bundle-plugin doesn’t support multi-release jars so it has to be called before the java9 classes are created.
Ralph > On Jun 15, 2017, at 4:42 PM, Ralph Goers <ralph.go...@dslextreme.com> wrote: > > I have a plugin that uses a jar that doesn’t have any Maven plugin > annotations in it but does have classes compiled for Java 9 in it that are > only used when executing on Java 9. Loading of the plugin is failing because > the annotation scanner can’t read the class. What do I need to do to prevent > annotation scanning on that dependency? Would this work if the dependency was > in multi-release format? > > Here is the relevant stack trace. > > Caused by: java.lang.IllegalArgumentException > at org.objectweb.asm.ClassReader.<init>(Unknown Source) > at org.objectweb.asm.ClassReader.<init>(Unknown Source) > at org.objectweb.asm.ClassReader.<init>(Unknown Source) > at > org.apache.maven.tools.plugin.extractor.annotations.scanner.DefaultMojoAnnotationsScanner.analyzeClassStream(DefaultMojoAnnotationsScanner.java:214) > at > org.apache.maven.tools.plugin.extractor.annotations.scanner.DefaultMojoAnnotationsScanner.scanArchive(DefaultMojoAnnotationsScanner.java:145) > at > org.apache.maven.tools.plugin.extractor.annotations.scanner.DefaultMojoAnnotationsScanner.scan(DefaultMojoAnnotationsScanner.java:112) > at > org.apache.maven.tools.plugin.extractor.annotations.scanner.DefaultMojoAnnotationsScanner.scan(DefaultMojoAnnotationsScanner.java:79) > at > org.apache.maven.tools.plugin.extractor.annotations.JavaAnnotationsMojoDescriptorExtractor.scanAnnotations(JavaAnnotationsMojoDescriptorExtractor.java:124) > at > org.apache.maven.tools.plugin.extractor.annotations.JavaAnnotationsMojoDescriptorExtractor.execute(JavaAnnotationsMojoDescriptorExtractor.java:103) > at > org.apache.maven.tools.plugin.scanner.DefaultMojoScanner.populatePluginDescriptor(DefaultMojoScanner.java:96) > at > org.apache.maven.plugin.plugin.AbstractGeneratorMojo.execute(AbstractGeneratorMojo.java:283) > at > org.apache.maven.plugin.plugin.HelpGeneratorMojo.execute(HelpGeneratorMojo.java:92) > at > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) > > Ralph > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org