Альтернативный способ определения задачи bootRun в Gradle не работает - PullRequest
0 голосов
/ 02 октября 2019

Я обычно определяю задачи в Gradle (используя Groovy) как tasks.withType(Type);например: tasks.withType(JavaCompile), tasks.withType(Test) и т. д.

Теперь я хочу сделать то же самое с некоторыми предоставленными Spring Boot задачами, а именно: bootRun и bootStartScripts, но Gradle не может найтиэто.

Я знаю, что это глупо, и я мог бы уйти, просто используя bootRun и bootStartScripts, но я хотел бы понять, почему они не могут быть настроены / определены таким образом.

1 Ответ

1 голос
/ 02 октября 2019

Я думаю, с определить вы имеете в виду настроить , потому что withType можно использовать только для настройки существующих задач. Он принимает тип задачи (класс) и замыкание, которое можно использовать для настройки всех доступных задач этого типа. Это необходимо учитывать, поскольку проект может содержать несколько задач одного типа, которые на самом деле должны выполнять совершенно разные вещи. Настройка всех этих задач или только конкретной важна!

Чтобы передать тип задачи методу withType, вам нужно знать имя класса, реализующего тип задачи. Это имя не обязательно связано с именем (ами) фактического задания (й). Для задач test и compileJava подключаемого модуля Gradle Java этими классами являются org.gradle.api.tasks.testing.Test и org.gradle.api.tasks.compile.JavaCompile. Поскольку эти классы предоставляются Gradle, они автоматически импортируются и на них можно ссылаться через их простые имена Test и JavaCompile. Но Spring Boot Plugin является сторонним плагином, поэтому ссылки на классы должны указываться по их полным именам.

Задание bootStartScripts по вашему вопросу имеет тип CreateStartScript, предоставленный Gradle,Поэтому его можно настроить следующим образом:

tasks.withType(CreateStartScripts) {
    // configure
}

Задача bootRun имеет тип org.springframework.boot.gradle.tasks.run.BootRun, предоставляемый плагином Spring Boot. Поэтому вам необходимо указать полное имя:

tasks.withType(org.springframework.boot.gradle.tasks.run.BootRun) {
    // configure
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...