Re: JDK9: Failed to parse module-info.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Re: JDK9: Failed to parse module-info.java

rfscholte
Hi,

short answer: to be able to compile Java 9 projects, you must use the JRE  
 from Maven (i.e. JAVA_HOME must point to JDK 9).

The long story: asm-6.0_ALPHA is based on an old format of the module-info  
file. Only a few weeks ago asm-6.0_BETA was released. There was over a  
year between these 2 versions and I think is was relatively soon after  
ALPHA that the format was changed.
The first solution I had implemented was using QDox during also during  
test to read the module-info.java, which is not correct. Test should be  
using the compiled version, i.e. module-info.class.
So I implemented a reflection-based implementation and replaced it for  
QDox. This implementation uses reflection to access the module-descriptor.  
But this means that Maven must be running with Java 9. Toolchain doesn't  
help here.

Right now I have the code ready to replace this. I also have started a new  
project called plexus-languages[1], which has plexus-java. This contains  
JRE/JDK related code which is used my multiple plugins / libraries.
Most important: this code is NOT related to Maven!

One of the most important features: based on a JavaModuleDescriptor and a  
set of jars + output directories and can make an accurate separation for  
modulepath and classpath. Any feedback is appreciated.

thanks,
Robert

[1] https://github.com/codehaus-plexus/plexus-languages


On Sat, 12 Aug 2017 17:44:03 +0200, Karl Heinz Marbaise  
<[hidden email]> wrote:

> Hi,
>
> currently I'm facing the following issue with JDK9+181: (using  
> maven-compiler-plugin:3.6.2):
>
> [DEBUG] CompilerReuseStrategy: reuseCreated
> [DEBUG] useIncrementalCompilation enabled
> [ERROR] Failed to parse module-info:
> [ERROR] With reflect: null
> [ERROR] With asm: null
>
> [ERROR] Failed to execute goal  
> org.apache.maven.plugins:maven-compiler-plugin:3.6.2:testCompile  
> (default-testCompile) on project devday-workshop-service: Execution  
> default-testCompile of goal  
> org.apache.maven.plugins:maven-compiler-plugin:3.6.2:testCompile failed:  
> Failed to parse module-info -> [Help 1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to  
> execute goal  
> org.apache.maven.plugins:maven-compiler-plugin:3.6.2:testCompile  
> (default-testCompile) on project devday-workshop-service: Execution  
> default-testCompile of goal  
> org.apache.maven.plugins:maven-compiler-plugin:3.6.2:testCompile failed:  
> Failed to parse module-info
> 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 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at  
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at  
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> 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.6.2:testCompile failed:  
> Failed to parse module-info
> 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.RuntimeException: Failed to parse module-info
> at  
> org.apache.maven.plugin.compiler.TestCompilerMojo.getModuleName(TestCompilerMojo.java:328)
> at  
> org.apache.maven.plugin.compiler.TestCompilerMojo.preparePaths(TestCompilerMojo.java:265)
> at  
> org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:751)
> at  
> org.apache.maven.plugin.compiler.TestCompilerMojo.execute(TestCompilerMojo.java:172)
> at  
> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
> ... 21 more
>
> Currently testing the project:  
> https://github.com/khmarbaise/java9-modules-maven-junit-example which I  
> have adopted just to see how it works with Maven using modules etc.
>
> Working on the jdk9-fixing branch...which produces the above error ?
>
> Any Idea?
>
> Kind regards
> Karl Heinz Marbaise
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]