Я пишу плагин для извлечения некоторого шаблона из набора существующих скриптов сборки Gradle.Существующие сценарии сборки в основном написаны на Groovy и компилируются на Java.
Для сборки своего плагина я использую Gradle Kotlin DSL и решил, что воспользуюсь возможностью написать и плагин на Kotlin.Это все работает, но теперь мой плагин имеет огромную зависимость от Kotlin - и в документации Gradle особенно рекомендуются минимизация внешних библиотек .
Плагины Java и Groovy избегают этого, потому что Java & Groovy являются общей зависимостьюс Gradle, но Kotlin не является общим предварительным требованием, и поэтому мы должны быть обеспокоены потенциально конфликтующими версиями Kotlin, необходимыми для различных плагинов.
Я думаю, что мне следует двигаться вперед с одним из следующих подходов, ноНе ясно, какие:
Просто перечислите stdlib
Котлина как стандартную зависимость и доверяйте Gradle, чтобы разобраться.
Это работает для одного плагина, но я долженожидать проблем, когда другой плагин также используется, но зависит от другого Kotlin?
Создать какие-то библиотеки Uber shadowJar shadowing Kotlin для моего плагина
Подразумевается, что каждый плагинЯ пишу так, что это будет на 10 с больше, чем нужно.
Givep на плагинах, основанных на Kotlin, и перезапись на Java / Groovy
Было бы стыдно расстаться с новым совершенством, но, возможно, было бы лучше избежать вышеуказанных грехов.
Рекомендации приветствуются!