maven - Java 11 Eclipse 找到自动模块,Maven 没有
问题描述
我正在尝试将一个有 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 将 jars 设置在类路径而不是模块路径,但编译器的插件调试输出没有记录。
如何让 Maven 正确处理这些模块?
解决方案
我遇到了同样的问题。添加
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
</plugins>
</build>
到我的pom为我解决了这个问题......
推荐阅读
- unity3d - VS Code 中的 Omnisharp 会产生很多关于 Unity 项目的警告。为什么?
- python - PermissionError:[Errno 13] 权限被拒绝:'voice.mp3'
- javascript - 浮点数 - 没有算术运算和精度错误
- node.js - 使用承诺重构代码以读取文件并将它们转换为 json
- c# - 是什么让这个查询在 EF Core 3.x 中无法翻译?
- shopify - 更改 Shopify 上博客的 URL
- c# - 如何简化相互依赖的绑定?
- java - Getter Setter 不会给出变量
- c - Mingw64 / Msys2 - gcc 无法在自己的包含目录中找到标头
- javascript - 为了能够使用 Phaser、PixiJS 和 EaselJS 等库,我是否只需要与源建立“连接”来下载库?