You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Karl Heinz Marbaise <kh...@gmx.de> on 2017/08/12 15:44:03 UTC
JDK9: Failed to parse module-info.java
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-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: JDK9: Failed to parse module-info.java
Posted by Robert Scholte <rf...@apache.org>.
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
<pl...@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
> <kh...@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
>>> <kh...@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-unsubscribe@maven.apache.org
>> For additional commands, e-mail: dev-help@maven.apache.org
Re: JDK9: Failed to parse module-info.java
Posted by Plamen Totev <pl...@gmail.com>.
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 <kh...@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 <
>> khmarbaise@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.b
>>> uildProject(LifecycleModuleBuilder.java:117)
>>> at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.b
>>> uildProject(LifecycleModuleBuilder.java:81)
>>> at org.apache.maven.lifecycle.internal.builder.singlethreaded.S
>>> ingleThreadedBuilder.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.executeMoj
>>> o(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.execut
>>> e(AbstractCompilerMojo.java:751)
>>> at org.apache.maven.plugin.compiler.TestCompilerMojo.execute(TestCompilerMojo.java:172)
>>>
>>> at org.apache.maven.plugin.DefaultBuildPluginManager.executeMoj
>>> o(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-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
>
>
Re: JDK9: Failed to parse module-info.java
Posted by Karl Heinz Marbaise <kh...@gmx.de>.
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
> <kh...@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-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: JDK9: Failed to parse module-info.java
Posted by Robert Scholte <rf...@apache.org>.
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
<kh...@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-unsubscribe@maven.apache.org
> For additional commands, e-mail: dev-help@maven.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org