我正在尝试对“任务” 任务调用doFirst
操作。在这里,我的意思是当我们运行命令“gradle task --all”时,我们看到名为“tasks”的任务列在帮助程序任务下。
编辑1开始
我的 build.gradle :
tasks.doFirst{ println "First executed"}
编辑1 END
它给了我下面的错误:
Could not find method doFirst() for arguments [build_3m21dsbdvnnfh1sf7441k5d5v$_run_closure5@2cad909f] on task set of type org.gradle.api.internal.tasks.DefaultTaskContainer
我试图通过运行命令
gradle help --task tasks
找出此任务“任务”的类型它说类型是
TaskReportTask (org.gradle.api.tasks.diagnostics.TaskReportTask)
然后,我导航到
TaskReportTask
API文档。根据文档,该类从doFirst
类继承了org.gradle.api.internal.AbstractTask
方法。我很困惑,如果在其中插入doFirst()方法,这为什么不起作用。在这方面的任何指导都是高度赞赏的。
最佳答案
问题是您尝试在属性doFirst
上调用方法tasks
,实际上是project.tasks
(TaskContainer
的Project
的实例,请参见Project DSL),而不是名为Task
的tasks
对象。
请改用以下内容:
project.tasks.getByName("tasks").doFirst {
println "do something before task [tasks] executes"
}
关于gradle - 无法向 “tasks”任务添加doFirst操作。找不到参数doFirst()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53538026/