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