Разрешить плагин Gradle использовать свою конфигурацию для условного применения других плагинов

В плагине я хотел бы иметь возможность выбрать, какие другие плагины применяются (например, плагин Nexus или плагин Bintray, но не оба) на основе конфигурации, размещенной пользователем в закрытии конфигурации для моего плагина.

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

Я мог бы разделить свой плагин на два отдельных плагина (в одном и том же JAR) и потребовать применить первый, обеспечить закрытие конфигурации, применить второй и использовать конфигурацию, предоставленную для первого плагина, чтобы решить, какие плагины сторонних производителей применять.

Есть ли лучший способ получить конфигурацию для моего плагина достаточно рано, чтобы иметь возможность условно применять другие плагины (и позволить им использовать закрытие их конфигурации)?

1 ответ

Вы можете использовать gradle 61.5. Плагины скриптов инициализации. Это позволит вашему плагину работать до настройки проекта.

Пример в документации gradle удаляет репозитории из вашего скрипта сборки. Это означает, что вы можете прочитать свою конфигурацию в плагине скрипта Init и решить, какие плагины применить. Конечно, ваше имя конфигурации должно быть фиксированным, поэтому ваш плагин скрипта Init должен быть в состоянии прочитать его.

Другие вопросы по тегам