如何知道哪个项目在gradle中运行

时间:2016-07-17 10:51:20

标签: android gradle android-gradle

我有多个项目和一个主干...

有时我需要通过cmd运行:

gradlew Proj1:assembleRelease

其他时间:

gradlew Proj2:assembleRelease

如何在gradle文件中了解构建Proj1或Proj2的内容?

1 个答案:

答案 0 :(得分:1)

您可以通过gradle的任何实例上的Project属性访问此信息。来自the docs

  

getGradle()
  返回此项目所属的Gradle调用。

Gradle的实例提供startParameter属性,其中包含您想要的信息。例如,在根范围中:

print project.gradle.startParameter

对于我的特定调用,我可以通过

打印第一个任务请求的名称
print project.gradle.startParameter.taskRequests[0].args[0]

然而,上述情况可能非常脆弱,在一些重要案件中肯定会失败。

如果上述内容并不能完全符合您的要求,那么您可能会在Gradle实例中发现许多其他有用的内容,例如此构建的任务执行图和根项目。请注意,以上链接来自Project类的文档中的以下链接。我强烈建议您仔细阅读本文档。

另一方面,你为什么要这样做?通常,您只需将配置添加到各个项目本身,让任务运行器负责运行您的特定实现,而不是说if task1 is running then x else y