无法将doFirst操作添加到“任务”任务。找不到用于参数的方法doFirst()

时间:2018-11-29 11:29:24

标签: gradle build.gradle

我正在尝试对“任务” 任务执行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()方法,这为什么不起作用。

在这方面的任何指导都受到高度赞赏。

1 个答案:

答案 0 :(得分:2)

问题是您尝试在属性doFirst上调用方法tasks,实际上是属性project.tasksTaskContainer的{​​{1}}的实例,请参见Project DSL),而不是名为Project的{​​{1}}对象。

改为使用以下内容:

Task