您可以使用 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 文件中,您可以使用 requiresrequires transitive 等关键字定义对其他模块的依赖关系。这些对应于在 Gradle 构建文件中定义的 implementationapi 依赖关系。此外,模块 exports 包,这些包应该对消费者可见。其他包在模块外部不可见。

module org.gradle.sample.utilities {
    requires transitive org.gradle.sample.list;
    exports org.gradle.sample.utilities;
}

需要访问模块内部的单元(白盒)测试可以通过向测试源集添加 module-info.java 以传统方式编写。在测试执行中,模块将被视为具有停用封装的标准 Java 库。

黑盒(例如集成)测试,也应该在测试执行期间遵循封装规则,可以通过将相应的测试源集本身变成一个模块来编写,方法是添加一个 module-info.java。这在 此扩展示例 中显示。