我想从插件代码执行Gradle任务。
任何人都可以建议我,我如何从代码编程执行Gradle任务。
谢谢sumeet。
您可以按照以下方式进行
task a {
doLast {
println 'test'
}
}
task b {
doLast {
a.execute()
}
}
因此,在插件代码中,它可能类似于
project.tasks.<taskname>.execute()
,但这可能会在将来改变。您应该依靠任务的链接,然后直接调用它们。
Martin Linha提供的答案不再与Gradle的最新版本一起使用,例如Gradle7。任务类不再具有执行方法。相反,必须执行活动。此外,您可能还需要执行依赖项:
void executeTask(Task task) {
task.taskDependencies.getDependencies(task).each {
subTask -> executeTask(subTask)
}
task.actions.each { it.execute(task) }
}
请注意,这仍然是一个黑客,不能保证工作。