是否可以在Java代码中以编程方式获取Gradle的模块名称?
我需要它来访问MODULE_NAME/build/intermediates
目录下的模块构建文件,但硬编码模块名称是个坏主意。
答案 0 :(得分:7)
要获取当前的模块名称,您只需访问Gradle的project
对象
project.name
将返回模块app
应用
请参阅:https://docs.gradle.org/current/userguide/writing_build_scripts.html
答案 1 :(得分:1)
您可以在构建脚本中访问作为Project实例的project
变量。它有各种类似projectDir
或buildDir
的getter,因为使用它们非常常见,所以user guide中记录了它。
或者,如果您查找在那里生成文件的任务的输出,则可以找到此路径。
如果您需要在测试中知道此位置,可以使用系统属性从构建脚本传递它,如下所示:
test {
systemProperty "buildFolder", project.buildDir.absolutePath
}
BTW:https://github.com/gradle/gradle/blob/master/gradle/idea.gradle#L192有一个技巧,如何使用测试执行所需的属性更新IntelliJ工作区中的运行配置。如果您在IJ中运行JUnit测试(无需委托给Gradle),这将非常有用。