我有一个包含两个 Maven 模块 A
和 B
的 Maven 项目。 A
包含以下 Java 模块定义:
module A {
exports internal.util to B;
exports external.A;
}
B
包含以下 Java 模块定义:
module B {
requires A;
exports external.B;
}
当我构建项目时,出现错误:
[WARNING] module-info.java:[16,106] module not found: B
模块 B
存在但是因为模块 A
在 B
之前编译并且不依赖于它,编译器无法知道.因为我将编译器配置为将警告视为错误 (-Werror
),所以构建失败。
鉴于我想继续将警告视为错误,解决此问题的最佳方法是什么?
- 有没有办法向编译器提示该模块将在未来声明?
- 有没有办法抑制所有此类警告?
最佳答案
我通过扫描 JDK 11 源代码找到了一个解决方法:-Xlint:-module
。如果有人找到更好的解决方案,我仍然愿意接受。
更新:另一种方法是使用 --module-source-path
,如 https://stackoverflow.com/a/53717183/14731 所示
感谢艾伦·贝特曼 (Alan Bateman) 为我指明了这个方向!
关于java - 如何定义对未知模块的合格导出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53670052/