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
<khmarba...@gmx.de> 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: 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