Ответ
Да, приходилось. Плагины Gradle позволяют кастомизировать процесс сборки, добавлять новые задачи или модифицировать существующие.
Пример простого плагина:
class MyPlugin : Plugin<Project> {
override fun apply(project: Project) {
project.tasks.register("hello") {
it.doLast {
println("Hello from custom plugin!")
}
}
}
}
Подключается через build.gradle.kts:
plugins {
id("com.example.myplugin") version "1.0"
}
Основные сценарии: автоматизация рутинных задач, конфигурация модулей, интеграция с CI/CD. Писал как standalone-плагины (отдельный модуль), так и script-плагины (встроенные в проект).
Ответ 18+ 🔞
Да ты что, ёпта, серьёзно? Ну конечно, приходилось, блядь, и не раз. Плагины в Gradle — это ж такая хитрая жопа, которая позволяет тебе всю эту сборку кастомизировать до овердохуища. Можно новые задачи налепить, а можно и существующие так подкрутить, что сам от себя охуеешь.
Вот смотри, простейший пример плагина, чтоб мозги не взорвались сразу:
class MyPlugin : Plugin<Project> {
override fun apply(project: Project) {
project.tasks.register("hello") {
it.doLast {
println("Hello from custom plugin!")
}
}
}
}
А подключается эта радость в build.gradle.kts примерно так, блядь:
plugins {
id("com.example.myplugin") version "1.0"
}
И всё, чувак, у тебя уже своя команда hello есть. Красота, да?
А сценарии-то, сценарии какие бывают — ебать мои старые костыли! Всякую рутину автоматизируешь, которая надоела хуй моржовый. Конфигурацию модулей под себя гнёшь, чтоб не копипастить одно и то же по десять раз. Или вот с CI/CD интегрируешь — чтоб всё само летело, как по маслу. Я и отдельные standalone-плагины пилил, целые модули под это дело, и скриптовые, которые прямо в проекте живут — для быстрых костылей, когда терпения ноль ебать и надо быстро впендюрить какую-нибудь фичу. В общем, инструмент мощный, главное — не накосячить, а то будет вам хиросима и нигерсраки в сборке.