Hi Plamen,

That's right, it is intended for the code being build and the library can be used while running on Java 7. There's only one tricky thing: when there's no module descriptor and no manifest file with an Automatic-Module-Name, then the module name must be calculated based on the filename. Here the library will use Java9 code, either via reflection (when running on Java 9) or JShell.

This piece of code is very likely to be required by the maven-surefire-plugin and maven-javadoc-plugin. But also non-Maven projects can use it if they want.

Any feedback is appreciated,
Robert

On Sun, 13 Aug 2017 17:19:40 +0200, Plamen Totev <plamen.iv.to...@gmail.com> wrote:

Hi Robert,

Plexus Languages looks very promising and really needed component. May I ask you something to clarify if I understand correctly it's >purpose. The intention is Plexus Languages to contain abstractions that represent the code that is going to be build and not the JDK/JRE used >to run Maven, right?

Regards,
Plamen Totev


On Sun, Aug 13, 2017 at 12:12 AM, Karl Heinz Marbaise <khmarba...@gmx.de> wrote:
Hi Robert,

I've made a separate issue MCOMPILER-304 to introduce plexus-language component.

Kind regards
Karl Heinz Marbaise

On 12/08/17 19:23, Robert Scholte wrote:
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?


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
For additional commands, e-mail: dev-h...@maven.apache.org

Reply via email to