构建 Java 模块示例
版本 8.13
您可以在支持 Gradle 的 IDE 中打开此示例。 |
此示例展示了如何创建一个包含 Java 模块 的多项目。Java 模块是 Java 本身的一个特性,自 Java 9 起可用,可以实现更好的封装。
在 Gradle 中,通过添加 module-info.java
文件,可以将每个包含 Java 源代码的源集转换为模块。通常,在具有像这样的 Java 模块的项目中,子项目的 main 源集代表一个模块。
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
转换为模块来编写。这在此扩展示例中显示。