Невозможно добавить действие doFirst к задаче «tasks». Не удалось найти метод doFirst () для аргументов - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь вызвать doFirst действие над "заданиями" .Здесь я имею в виду задачу под названием «задачи», которую мы видим в списке вспомогательные задачи , когда запускаем команду «gradle tasks --all».

РЕДАКТИРОВАТЬ 1 ЗАПУСК

Мой build.gradle :

tasks.doFirst{ println "First executed"}

РЕДАКТИРОВАТЬ 1 КОНЕЦ

Это дает мне ошибку ниже:

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 голосов
/ 29 ноября 2018

Проблема состоит в том, что вы пытаетесь вызвать метод doFirst для свойства tasks, которое фактически project.tasks (экземпляр TaskContainer из Project, см. Project DSL ), а не объект Task с именем tasks.

Вместо этого используйте следующее:

project.tasks.getByName("tasks").doFirst {
    println "do something before task [tasks] executes"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...