Hi,

Sorry that I'm not familiar with emails and mailing lists, Please do
not hesitate to point out anything I've done wrong.

Recently I had some issues when using Maven. I have a module-info.java
with "uses" and "provides" statements in it. When I tried compiling,
the compilation would fail if the service and service implementation
classes declared in module-info.java had annotated type
parameters(e.g. method declaration like "void m(List<@Nullable String>
l);").

Here are the stacktraces:

[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile
(default-compile) on project ***: Execution default-compile of goal
org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile failed:
syntax error @[27,33] in file:/***.java -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to
execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile
(default-compile) on project *omitted for privacy*: Execution
default-compile of goal
org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile failed:
syntax error @[27,33] in file:/***.java
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2
(MojoExecutor.java:333)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
(MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000
(MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run
(MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute
(DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:73)
    at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:348)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution
default-compile of goal
org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile failed:
syntax error @[27,33] in file:/***.java
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
(DefaultBuildPluginManager.java:133)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2
(MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
(MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000
(MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run
(MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute
(DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:73)
    at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:348)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
Caused by: com.thoughtworks.qdox.parser.ParseException: syntax error
@[27,33] in file:/***.java
    at com.thoughtworks.qdox.parser.impl.Parser.yyerror (Parser.java:1963)
    at com.thoughtworks.qdox.parser.impl.Parser.yyparse (Parser.java:2085)
    at com.thoughtworks.qdox.parser.impl.Parser.parse (Parser.java:1944)
    at com.thoughtworks.qdox.library.SourceLibrary.parse
(SourceLibrary.java:232)
    at com.thoughtworks.qdox.library.SourceLibrary.parse
(SourceLibrary.java:190)
    at com.thoughtworks.qdox.library.SourceFolderLibrary.getClassFromSourceFile
(SourceFolderLibrary.java:159)
    at com.thoughtworks.qdox.library.SourceFolderLibrary.resolveJavaClass
(SourceFolderLibrary.java:112)
    at com.thoughtworks.qdox.library.AbstractClassLibrary.getJavaClass
(AbstractClassLibrary.java:101)
    at com.thoughtworks.qdox.library.AbstractClassLibrary.getJavaClass
(AbstractClassLibrary.java:94)
    at com.thoughtworks.qdox.type.TypeResolver.getJavaClass
(TypeResolver.java:87)
    at com.thoughtworks.qdox.model.impl.DefaultJavaType.resolveRealClass
(DefaultJavaType.java:282)
    at com.thoughtworks.qdox.model.impl.DefaultJavaType.getName
(DefaultJavaType.java:837)
    at 
org.codehaus.plexus.languages.java.jpms.SourceModuleInfoParser.fromSourcePath
(SourceModuleInfoParser.java:88)
    at 
org.codehaus.plexus.languages.java.jpms.LocationManager.getMainModuleDescriptor
(LocationManager.java:305)
    at org.codehaus.plexus.languages.java.jpms.LocationManager.resolvePaths
(LocationManager.java:143)
    at org.apache.maven.plugin.compiler.CompilerMojo.preparePaths
(CompilerMojo.java:264)
    at org.apache.maven.plugin.compiler.AbstractCompilerMojo.execute
(AbstractCompilerMojo.java:934)
    at org.apache.maven.plugin.compiler.CompilerMojo.execute
(CompilerMojo.java:215)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
(DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2
(MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
(MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000
(MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run
(MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute
(DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute
(MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
(LifecycleModuleBuilder.java:73)
    at 
org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
(SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
(LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:77)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:568)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
(Launcher.java:283)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch
(Launcher.java:226)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
(Launcher.java:407)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main
(Launcher.java:348)
    at org.codehaus.classworlds.Launcher.main (Launcher.java:47)

The direct cause is QDox's parser bug, and here are the related issues:
https://github.com/paul-hammant/qdox/issues/182
https://github.com/paul-hammant/qdox/issues/181

I wonder why Maven would need to parse the module-info.java. Also, it
looks like that QDox is under inactive development, so I wonder if
there is any workaround.

Thanks.

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

Reply via email to