Пользовательский плагин Gradle - обмен данными между плагинами - PullRequest
0 голосов
/ 15 марта 2020

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

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

Вы можете поместить все ваши DTO и задачи и т.д. c в «базовый» плагин. Этот плагин не добавляет никаких задач в модель, он просто делает их доступными в пути к классам и, возможно, добавляет общий объект расширения к модели

Ваш плагин "reader" применяет "base" плагин "и добавляет задачи" читателя "в модель

Ваш плагин" издатель "применяет плагин" base "и добавляет" издателя "для задач модели. Эти задачи будут зависеть от любых «читательских» задач в модели (например, через tasks.withType(...))

Примечание: Gradle будет применять плагин только один раз к проекту. Таким образом, если «читатель» и «издатель» применяются к одному и тому же проекту, плагин «base» будет применен только один раз

Gradle использует этот шаблон для внутреннего использования. Многие плагины применяют «базовый» плагин, который добавляет очистку, проверку и сборку задач жизненного цикла . Все плагины java применяют плагин "java -base", который добавляет исходные наборы к модели, а также применяет плагин "base"

0 голосов
/ 16 марта 2020

Плагин должен обеспечивать чтение данных логики c в виде задачи: readData. Затем второй плагин должен создать задачу типа sendData.

После того, как обе задачи созданы и работают независимо друг от друга, настройте их так, чтобы они зависели друг от друга:

tasks.named("sendData") {
    dependsOn(tasks.named("readData")
}

Выше для отправки данных сначала должна выполняться часть чтения.

Ссылка: https://docs.gradle.org/current/userguide/more_about_tasks.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...