首页 > 解决方案 > 有一个任务从同一项目中的另一个任务复制所有依赖项吗?

问题描述

我有两个任务,具有相同的依赖关系。

而不是两次编写每个依赖项,例如

A.dependsOn C
B.dependsOn C
...

有没有一种方法可以让 B 轻松地从 A 复制依赖项,而无需它实际上依赖于 A?当我调用其中一项任务时,我不希望 A 在 B 之前运行,反之亦然。

谢谢

标签: gradlegroovy

解决方案


一种可能的解决方案是创建您想要依赖的任务的集合并按如下方式使用它:

def commonDependencies = [
        C, D, E
]

A.dependsOn commonDependencies
B.dependsOn commonDependencies

或者您可以使用您的数组AB任务来执行此操作,如下所示:

[A, B].each {task -> task.dependsOn C}

它遍历数组并设置每个元素dependsOn属性。


推荐阅读