В Gradle Custom Plugin, как вставить задачу между сборкой и войной? - PullRequest
0 голосов
/ 17 февраля 2020

Я создаю пользовательский плагин, и мне нужно выполнить военное задание после того, как другое задание будет выполнено, но я мог бы заметить, чтобы оно заработало. Вот зависимости задачи:

build: скомпилировать java классов.

prepareFrontEnd: требуется сборка java классы в качестве входных данных, поэтому я добавил dependsOn build и в результате создал несколько файлов.

buildFrontEnd: требуется prepareFrontEnd файлы в качестве входных данных для создания структуры каталогов с скомпилированная версия frontEnd, поэтому я добавил dependsOn prepareFrontEnd

и наконец

war: мне нужно, чтобы эта задача добавила выходные каталоги buildFrontEnd , но если я добавлю dependsOn или mustRunAfter, я получу

FAILURE: Build failed with an exception.

* What went wrong:
Circular dependency between the following tasks:
:assemble
\--- :war
     \--- :buildFrontEnd
          \--- :prepareFrontEnd
               \--- :updatePom
                    \--- :build
                         \--- :assemble (*)

Как я могу решить эту проблему?

Вот плагин url

1 Ответ

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

build обычно является концом строки и обычно означает assemble + check. И war обычно является частью assemble. Таким образом, вы должны интегрировать этот путь раньше. Конечно, вы не хотите, чтобы что-то зависело от build - обычно build (точнее assemble) зависит от вещей.

Я бы go: classes <- buildFrontEnd <- prepareFrontEnd <- compileJava запустил консервативно.

Попробуйте, как это выглядит с gradle -m build и отрегулируйте при необходимости. Другие опции для цепочки:

  • war: скорее всего, не правильно, поскольку файлы могут быть полезны при запуске кода в разработке
  • processResources: полезно, если вы просто сгенерировать некоторые JS файлы, которые будут отправлены как stati c ресурсы позже
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...