gpt4 book ai didi

plugins - 在自定义 TaskActions 中使用 gradle 任务 DSL?

转载 作者:行者123 更新时间:2023-12-03 03:10:25 25 4
gpt4 key购买 nike

类 MyTask 扩展了 DefaultTask {
字符串属性 = "默认"

@TaskAction
def grailsAppClean() {
delete fileTree {
...
}
exec {
...
}
}

在我的插件中,我有这个:
void apply(Project project) {
project.task('myTask', type: MyTask)
}

当我直接从外部 gradle 脚本调用任务时,或使用 type: MyTask ,我收到以下错误:
Could not find method fileTree()...
我可以通过 DSL 以这种方式使用内置任务吗?如果没有,我如何手动调用 FileTreeExec ?我希望能够使用 DSL。

最佳答案

首先,您可以编写脚本插件而不是二进制插件。如果你想坚持使用二进制插件,你可以通过以下方式获得 DSL 语法:

void apply(Project project) {
project.configure(project) {
delete fileTree {
...
}
exec {
...
}
}
}

有一些语法位您无法获得,因为它们是使用 Grooyy AST 转换实现的。想到的是 task foo(...)句法。您还必须重复 project.configure(project)在每种方法中。不过,您可以将其抽象为辅助方法。

关于plugins - 在自定义 TaskActions 中使用 gradle 任务 DSL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8479990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com