是否有可能通过Java代码以编程方式获取Gradle的模块名称?如何以编程方式获取Gradle模块名称
我需要它来访问MODULE_NAME/build/intermediates
目录下的模块构建文件,但硬编码模块名称是一个坏主意。
是否有可能通过Java代码以编程方式获取Gradle的模块名称?如何以编程方式获取Gradle模块名称
我需要它来访问MODULE_NAME/build/intermediates
目录下的模块构建文件,但硬编码模块名称是一个坏主意。
您可以在构建脚本中访问project
变量,该脚本是Project的实例。它有各种各样的获得者,如projectDir
或buildDir
,并且由于这是相当常见的使用它们,所以记录在user guide中。
或者,您可以找到此路径,如果您查找在那里生成文件的任务的输出。
如果你需要知道在您的测试这个位置,您可以使用系统属性像这样从构建脚本传递: test { systemProperty "buildFolder", project.buildDir.absolutePath }
BTW:https://github.com/gradle/gradle/blob/master/gradle/idea.gradle#L192有一招如何更新性质的IntelliJ的工作空间运行配置,你需要测试执行。如果您在IJ中运行JUnit测试(不委托Gradle),这可能很有用。
为了得到当前的模块名称,你可以只访问摇篮的project
对象
project.name
将返回,该模块app
应用
参见:https://docs.gradle.org/current/userguide/writing_build_scripts.html
而我将如何使用我在Java代码中?我需要它在单元测试亚军,所以在build.gradle没有解决我的问题 – tomrozb
你应该说你需要它的! 尝试将它作为Radim建议的Gradle构建脚本中的系统属性传递给您的测试用例。然后你的测试代码可以使用System.getProperty(“buildFolder”)访问它。 – Jolta