Gradle辅助脚本是否可以在主脚本中使用任务?

Gradle辅助脚本是否可以在主脚本中使用任务?,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,我有一个main build.gradle脚本,它在辅助脚本中使用任务。 如果可能的话,我希望次要脚本中的任务依赖于主要脚本中的任务。但这似乎是不可能的。还是这样 在a.gradle中: ... apply from: 'b.gradle' task inA { } ... 在b.gradle中: task inB { dependsOn inA } 这将给出: 评估脚本时出现问题 在任务:app:inB上找不到属性“inA” 这可能吗?构建脚本是按顺序(从上到下)计算的,因此在这

我有一个main build.gradle脚本,它在辅助脚本中使用任务。 如果可能的话,我希望次要脚本中的任务依赖于主要脚本中的任务。但这似乎是不可能的。还是这样

在a.gradle中:

...
apply from: 'b.gradle'

task inA {
}
...
在b.gradle中:

task inB {
    dependsOn inA
}
这将给出: 评估脚本时出现问题

在任务:app:inB上找不到属性“inA”


这可能吗?

构建脚本是按顺序(从上到下)计算的,因此在这种情况下,应用“b.gradle”时任务“inA”还不存在。简单的解决方法是在引用任务时使用字符串而不是符号

task inB {
    dependsOn 'inA'
}

谢谢但是这是如何工作的呢?使用字符串和符号有什么区别?基本上使用字符串会推迟计算。事实上,在您真正尝试并执行任务之前,Gradle并不真正关心找出任务依赖关系。因此,它首先解析所有脚本,创建所有任务,等等,然后创建任务执行图作为最后一步。此时,它将查找名为“inA”的任务。如果查看javadoc,您将看到
dependsOn
方法接受的所有不同参数。你应该投票选出你认为有用的答案。