如何以编程方式获取 Gradle 模块名称

How can I get Gradle module name programmatically

是否可以在 Java 代码中以编程方式获取 Gradle 的模块名称?

我需要它来访问 MODULE_NAME/build/intermediates 目录下的模块构建文件,但是硬编码模块名称是个坏主意。

您可以在作为 Project. It has various getters like projectDir or buildDir and since this is quite common to use them it is documented in user guide.

实例的构建脚本中访问 project 变量

或者,如果您查找在那里生成文件的任务的输出,您也可以找到此路径。

如果您需要知道测试中的这个位置,您可以使用系统 属性 从构建脚本中传递它,如下所示: test { systemProperty "buildFolder", project.buildDir.absolutePath }

顺便说一句:https://github.com/gradle/gradle/blob/master/gradle/idea.gradle#L192 有一个技巧,如何使用测试执行所需的属性更新 IntelliJ 工作区中的 运行 配置。如果您 运行 在 IJ 中进行 JUnit 测试(不委托给 Gradle),这会很有用。

要获取当前的模块名称,您只需访问 Gradle 的 project 对象

project.name

将return,用于模块app

app

参见:https://docs.gradle.org/current/userguide/writing_build_scripts.html