java - 如何定义对未知模块的合格导出?

标签 java maven java-module

我有一个包含两个 Maven 模块 AB 的 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 存在但是因为模块 AB 之前编译并且不依赖于它,编译器无法知道.因为我将编译器配置为将警告视为错误 (-Werror),所以构建失败。

鉴于我想继续将警告视为错误,解决此问题的最佳方法是什么?

  • 有没有办法向编译器提示该模块将在未来声明?
  • 有没有办法抑制所有此类警告?

最佳答案

我通过扫描 JDK 11 源代码找到了一个解决方法:-Xlint:-module。如果有人找到更好的解决方案,我仍然愿意接受。

更新:另一种方法是使用 --module-source-path,如 https://stackoverflow.com/a/53717183/14731 所示

感谢艾伦·贝特曼 (Alan Bateman) 为我指明了这个方向!

关于java - 如何定义对未知模块的合格导出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53670052/

相关文章:

java - RecyclerView OnClick 带到另一个 Fragment

java - 使用 Apache Tomcat 将上传的静态文件存储在何处

java - 为什么模块路径上的模块需要 --add-modules ?

java - 如何在多模块项目中获取 Maven Reactor 构建顺序 (artifactId)

java - ServiceLoader.load 如何与 JPMS 中的类加载器一起工作?

java - 如何在 Java 9 中按类获取模块名称?

java - 为什么我的 ListView 在 TableRow 中包含 RatingBar 时不可点击?

java - 文本文件读取

java - Android Studio 的按钮和 Activity

java - 如何使用 Maven 从 Spring Boot 应用程序中删除所有 jar