gradle - 无法向 “tasks”任务添加doFirst操作。找不到参数doFirst()方法

标签 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()方法,这为什么不起作用。

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

最佳答案

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

请改用以下内容:

project.tasks.getByName("tasks").doFirst {
    println "do something before task [tasks] executes"
}

关于gradle - 无法向 “tasks”任务添加doFirst操作。找不到参数doFirst()方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53538026/

相关文章:

android - React Native构建失败:文件超出大小限制2147483647

android - 错误:<内存>在具有JNI的Android上没有此类文件或目录

gradle - JarSigner Ant.signjar用于无依赖项的jar文件,但在Gradle Script中包含依赖项时则不适用于jar

android - 为android中的每种风格替换一个XML文件

android - 错误 :Execution failed for task ':app:processDebugGoogleServices' . > 请修复版本冲突

gradle - 管理共享 Protocol Buffer 库并使用Gradle进行编译

scala - 如何将ScalaFXML与Gradle相结合?

gradle - 如何使用 Gradle 将编译器参数传递给 Kotlin 编译器

android - 在 Android Studio 上执行任务 ':app:dexDebug' 失败

java - 如何使用Gradle配置JCompilo