[ https://issues.apache.org/jira/browse/MCOMPILER-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16342297#comment-16342297 ]
Marcel Kolsteren edited comment on MCOMPILER-321 at 1/28/18 10:41 AM: ---------------------------------------------------------------------- Thanks for the quick response! True, the error that the Java compiler gives is correct, but I'd expect that the maven-compiler-plugin itself reports a more detailed error (and maybe even stops so that the Java compiler is not called at all). Regarding the problem with the java modules: that might be solved by using the method {{ModuleFinder#ofSystem​}}. was (Author: mkolsteren): Thanks for the quick response! True, the error that the Java compiler gives is correct, but I'd expect that the maven-compiler-plugin itself reports the error (and maybe even stops so that the Java compiler is not called at all). Regarding the problem with the java modules: that might be solved by using the method {{ModuleFinder#ofSystem​}}. > Problematic Java 9 modules are silently ignored > ----------------------------------------------- > > Key: MCOMPILER-321 > URL: https://issues.apache.org/jira/browse/MCOMPILER-321 > Project: Maven Compiler Plugin > Issue Type: Bug > Reporter: Marcel Kolsteren > Priority: Major > Attachments: maven-compiler-plugin-bug.zip > > > Before the compilation starts, the compiler plugin prepares the module path > and the class path. Unfortunately, this process is very lenient. If the > plugin cannot find a module that is specified in the module-info file, it > doesn't report this problem, and it just carries on. In the end, the compiler > will give a "module not found", giving no clue about the root cause. > As an example, I attached a simple maven project with a module info file that > refers to an automatic module named {{jython-standalone}}. The dependencies > contain a jar file {{jython-standalone-2.7.0.jar}}. That jar file contains no > module information, and it would normally be resolvable as an automatic > module. However, when building the project, the Java compiler fails with this > error: > {{module not found: jython.standalone}} > The root cause of the error is that the jar file contains a class at top > level, which is illegal for a module. So, the error message "module not > found" is misleading. > I think this is a bug, because the maven-compiler-plugin fails to perform its > task of building a correct module path, but doesn't tell, and just carries > on. Instead, it should stop, and give an informative error message. > Relevant source code: > * [https://github.com/apache/maven-compiler-plugin], class {{CompilerMojo}} > * [https://github.com/codehaus-plexus/plexus-languages], class > {{LocationManager}} and {{MainClassModuleNameExtractor}} > * > [https://docs.oracle.com/javase/9/docs/api/java/lang/module/ModuleFinder.html] > The {{MainClassModuleNameExtractor}} uses the {{ModuleFinder}} class of the > JDK to find modules. I think that these two error situations should lead to > an error and a clear description of possible causes: > * {{ModuleFinder#findAll}} returns an empty set. > * {{ModuleFinder#findAll}} results in a {{FindException}}. When this happens > is well documented in the {{ModuleFinder#of}} method. This exception is > currently swallowed. -- This message was sent by Atlassian JIRA (v7.6.3#76005)