我想从我的插件代码中执行 gradle 任务。
任何人都可以建议我,我如何以编程方式从代码执行 gradle 任务。
谢谢,苏梅特。
我想从我的插件代码中执行 gradle 任务。
任何人都可以建议我,我如何以编程方式从代码执行 gradle 任务。
谢谢,苏梅特。
你可以这样做
task a {
doLast {
println 'test'
}
}
task b {
doLast {
a.execute()
}
}
所以在插件代码中它可能类似于
project.tasks.<taskname>.execute()
但这在未来可能会改变。您应该依赖任务的链接,而不是直接调用它们。
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,不能保证有效。