【发布时间】:2023-04-04 03:25:01
【问题描述】:
是否可以在 Java 代码中以编程方式获取 Gradle 的模块名称?
我需要它来访问MODULE_NAME/build/intermediates 目录下的模块构建文件,但是硬编码模块名称是个坏主意。
【问题讨论】:
标签: android gradle android-gradle-plugin build.gradle
是否可以在 Java 代码中以编程方式获取 Gradle 的模块名称?
我需要它来访问MODULE_NAME/build/intermediates 目录下的模块构建文件,但是硬编码模块名称是个坏主意。
【问题讨论】:
标签: android gradle android-gradle-plugin build.gradle
您可以在构建脚本中访问project 变量,该变量是Project 的实例。它有各种吸气剂,如 projectDir 或 buildDir,由于使用它们很常见,因此记录在 user guide 中。
或者,如果您在此处查找生成文件的任务的输出,也可以找到此路径。
如果您需要在测试中知道这个位置,您可以使用系统属性从构建脚本传递它,如下所示:
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
将返回,用于模块app
应用程序
见:https://docs.gradle.org/current/userguide/writing_build_scripts.html
【讨论】: