Интеграция пользовательских задач в жизненный цикл многопроектной сборки - PullRequest
0 голосов
/ 17 февраля 2020

У меня есть мультипроектная сборка, содержащая два java библиотечных модуля 'A' и 'B'. «B» имеет зависимость от модуля «A»:

dependencies {
  api ':A'
}

Теперь я хочу написать собственный плагин, который предоставляет пользовательскую задачу «myGenerator». «myGenerator» должен запускаться до компиляции любых классов (задача compile Java) в модуле «B», но после сборки модуля «A» («myGenerator» будет реализовывать генератор кода, которому требуются некоторые ресурсы модуля «A»).

Как мне настроить задачу myGenerator? Если я говорю

compileJava.dependsOn myGenerator

и запускаю gradle assemble в модуле «B», «myGenerator» все еще выполняется перед сборкой модуля «A».

Каким-то образом мне нужно настроить «myGenerator» иметь зависимость от конфигурации «API» модуля «A». Как я могу это сделать?

1 Ответ

0 голосов
/ 18 февраля 2020

Вы выразили только одну зависимость из своего предложения:

'myGenerator' должен запускаться до компиляции любых классов (компиляция задачи Java) в модуле 'B', но после сборки модуля 'A'

Вам нужно express другой:

myGenerator.dependsOn project(':A').jar // or the relevant assembly task of your build
...