如何执行Gradle任务



我想从插件代码执行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) }
}

请注意,这仍然是一个黑客,不能保证工作。