简体   繁体   English

如何执行gradle任务

[英]How to execute gradle task

I wanted to execute gradle task from my plugin code.我想从我的插件代码中执行 gradle 任务。

Any one can suggest me, how can I programmatically execute gradle task from code.任何人都可以建议我,我如何从代码中以编程方式执行 gradle 任务。

Thanks, Sumeet.谢谢,苏梅特。

You can do it as follows 您可以按照以下步骤进行操作

task a {
  doLast {
    println 'test'
  }
}

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

So in plugin code it might be something similar to 因此在插件代码中可能类似于

project.tasks.<taskname>.execute()

But this might be changed in the future. 但是将来可能会改变。 You should rely on the chaining of the tasks rather then invoking them directly. 您应该依靠任务的链接,而不是直接调用它们。

The answer provided by Martin Linha does not work anymore with recent versions of Gradle, for instance Gradle 7. The Task class does not have an execute method anymore. Martin Linha 提供的答案不再适用于最新版本的 Gradle,例如 Gradle 7。Task 类不再有执行方法。 Instead, the activities have to be executed.相反,必须执行活动。 In addition, you might want to execute the dependencies as well:此外,您可能还想执行依赖项:

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

Note that this is still a hack and not guaranteed to work.请注意,这仍然是一个 hack,不能保证工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM