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