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

时间:2015-06-20 08:48:34

标签: android gradle android-gradle build.gradle

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

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

2 个答案:

答案 0 :(得分:7)

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

即可
project.name

将返回模块app

  

应用

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

答案 1 :(得分:1)

您可以在构建脚本中访问作为Project实例的project变量。它有各种类似projectDirbuildDir的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),这将非常有用。