You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Robert Scholte (JIRA)" <ji...@apache.org> on 2017/09/29 11:31:17 UTC

[jira] [Commented] (MCOMPILER-309) testCompile fails in 3.7.0 against Java 9 module

    [ https://issues.apache.org/jira/browse/MCOMPILER-309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16185718#comment-16185718 ] 

Robert Scholte commented on MCOMPILER-309:
------------------------------------------

First try to upgrade asm by adding the following dependency to the maven-compiler-plugin:
{code:xml}
<dependency>
    <groupId>org.ow2.asm</groupId>
    <artifactId>asm</artifactId>
    <version>6.0</version>
</dependency>
{code}

If this doesn't work, it is probably better to get the module-info.class and to send it to [ASM|http://asm.ow2.org/]
The reason why it probably works with 3.6.2 is because is falls back to QDox, which means the sourcecode is parsed again.
This is actually quite tricky, because there can be multiple source directories, but only one output directory. In the end the module-info.class is used, so better make it work with the class file.


> testCompile fails in 3.7.0 against Java 9 module 
> -------------------------------------------------
>
>                 Key: MCOMPILER-309
>                 URL: https://issues.apache.org/jira/browse/MCOMPILER-309
>             Project: Maven Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 3.7.0
>         Environment: Mac OS X, Maven 3.5.0, Java 9+181 
>            Reporter: Aleksandar Seovic
>         Attachments: module-info.java
>
>
> When compiling Java 9 module, I get the following exception:
> {code}
> ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile (default-testCompile) on project oracle.coherence.grpc.server: Execution default-testCompile of goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile failed: 29 -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile (default-testCompile) on project oracle.coherence.grpc.server: Execution default-testCompile of goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile failed: 29
>         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
>         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
>         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
>         at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
>         at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
>         at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
>         at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
>         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
>         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
>         at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
>         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
>         at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
>         at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>         at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:564)
>         at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
>         at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
>         at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
>         at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-testCompile of goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:testCompile failed: 29
>         at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
>         at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
>         ... 20 more
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 29
>         at org.objectweb.asm.ClassReader.readUTF8(Unknown Source)
>         at org.objectweb.asm.ClassReader.a(Unknown Source)
>         at org.objectweb.asm.ClassReader.readModule(Unknown Source)
>         at org.objectweb.asm.ClassReader.a(Unknown Source)
>         at org.objectweb.asm.ClassReader.accept(Unknown Source)
>         at org.objectweb.asm.ClassReader.accept(Unknown Source)
>         at org.codehaus.plexus.languages.java.jpms.AsmModuleInfoParser.parse(AsmModuleInfoParser.java:81)
>         at org.codehaus.plexus.languages.java.jpms.AsmModuleInfoParser.getModuleDescriptor(AsmModuleInfoParser.java:65)
>         at org.codehaus.plexus.languages.java.jpms.LocationManager.resolvePaths(LocationManager.java:113)
>         at org.apache.maven.plugin.compiler.TestCompilerMojo.preparePaths(TestCompilerMojo.java:281)
>         at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:762)
>         at org.apache.maven.plugin.compiler.TestCompilerMojo.execute(TestCompilerMojo.java:176)
>         at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
>         ... 21 more
> {code}
> Switching to 3.6.2 allowed me to compile, so it seems like this was a regression in 3.7.0.
> Based on the stack trace it looks like the failure is related to module info parsing, so I'm attaching my module_info.java as well. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)