构建 Java 模块示例
版本 9.0.0
您可以在支持Gradle的IDE中打开此示例。 |
此示例展示了如何创建包含 Java 模块的多项目。Java 模块是 Java 本身的一个特性,自 Java 9 起可用,它允许更好的封装。
在 Gradle 中,通过添加 module-info.java
文件,每个包含 Java 源代码的源集都可以转换为一个模块。通常,在此类具有 Java 模块的项目中,子项目的主源集表示一个模块。
src
└── main
└── java
└── module-info.java
在 module-info.java
文件中,您使用 requires
或 requires transitive
等关键字定义对其他模块的依赖。这些对应于 Gradle 构建文件中定义的 implementation
和 api
依赖。此外,模块 exports
(导出)应供消费者可见的包。其他包在模块外部不可见。
module org.gradle.sample.utilities {
requires transitive org.gradle.sample.list;
exports org.gradle.sample.utilities;
}
需要访问模块内部的单元(白盒)测试可以通过不向测试源集添加 module-info.java
的传统方式编写。在测试执行时,模块将被视为标准 Java 库,封装被禁用。
黑盒(例如集成)测试,在测试执行期间也应遵循封装规则,可以通过将相应的测试源集本身转换为模块(通过添加 module-info.java
)来编写。这在此扩展示例中有所展示。