Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
2.21.0
-
None
-
None
-
Windows 10, Maven v3.5.2
Description
Attached is a pointlessly simple project for Java 9. The module-info declares an optional dependency on Google Guava (an automatic module) using requires static. This optionality is reflected in the pom.xml, where the dependency is marked as optional.
It fails in surefire with JAVA_HOME=jdk9. The reason seems to be that although the Guava jar file is added to the modulepath, it is not referenced using --add-modules. As such, the module graph builder never pulls it in, despite it being on the modulepath. (Optional dependencies need to be directly added using --add-modules if in Maven's dependency graph)
Adding the --add-modules to the `argLine` parameter solves the problem, but this is a bug because the surefire plugin should handle the situation without manually adding it.
NOTE! The attachment has the --add-modules manually added to the pom.xml. Remove it to see the bug.
IIUC the fix should be: all static required modules should result in an extra argument: --add-modules X