构建 Java 模块示例
版本 8.7
您可以使用 IntelliJ 的 Gradle 导入 或 Eclipse Buildship 在 IDE 中打开此示例。 |
此示例演示如何创建一个包含 Java 模块 的多项目。Java 模块是 Java 自身的一项功能,从 Java 9 开始可用,它允许更好地封装。
在 Gradle 中,每个包含 Java 源代码的源集都可以通过添加 module-info.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
。这在 此扩展示例 中显示。
有关更多信息,请参阅 Java 库插件中的 Java 模块支持、应用程序插件中的 Java 模块支持 和 测试 Java 模块。