0

我想从我的插件代码中执行 gradle 任务。

任何人都可以建议我,我如何以编程方式从代码执行 gradle 任务。

谢谢,苏梅特。

4

2 回答 2

1

你可以这样做

task a {
  doLast {
    println 'test'
  }
}

task b {
    doLast {
        a.execute()
    }
}

所以在插件代码中它可能类似于

project.tasks.<taskname>.execute()

但这在未来可能会改变。您应该依赖任务的链接,而不是直接调用它们。

于 2017-02-24T10:41:00.320 回答
0

Martin Linha 提供的答案不再适用于最新版本的 Gradle,例如 Gradle 7。Task 类不再具有 execute 方法。相反,必须执行活动。此外,您可能还想执行依赖项:

void executeTask(Task task) {
    task.taskDependencies.getDependencies(task).each {
       subTask -> executeTask(subTask)
    }
    task.actions.each { it.execute(task) }
}

请注意,这仍然是一个 hack,不能保证有效。

于 2021-12-02T19:24:41.770 回答