我正在尝试将一个已有15年历史的Maven多模块项目升级到Java 11,以及Java 9中引入的模块系统。由于该项目是使用Maven构建的,因此所有依赖项都非常清楚。首先,我想使用自动模块名称来执行此操作,以免也引入升级的工件(如果不是绝对必需的话)。
Eclipse在此过程中非常有用,可以自动完成module-info.java中的自动模块名称。例如:
requires dom4j;
但是,如果我使用Maven进行编译,则会收到有关无法在其中自动完成Eclipse的模块的错误消息。
module-info.java:[29,18] module not found: dom4j
我正在使用Maven的编译器插件3.7.0(3.8.0根据https://jira.apache.org/jira/browse/MCOMPILER-355提供了NullPointerException)我怀疑Maven在类路径而不是在模块路径上设置了jar,但是编译器的插件调试输出不记录。
如何使Maven正确处理那些模块?
答案 0 :(得分:1)
我遇到了同样的问题。添加
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
</plugins>
</build>
我的pom为我解决了问题...