Избегайте повторного запуска фазы maven в GitLab CI - PullRequest
0 голосов
/ 05 июля 2019

Если мы определим такие этапы в .gitlab-ci.yml:

stages:
  - build
  - test
  - deploy
build:
  stage: build
  script: mvn -B compile

test:
  stage: test
  script: mvn -B test

deploy:
  stage: deploy
  script: mvn -B deploy

, это работает хорошо, но есть одна проблема, что в каждом задании, которое мы выполняем для этапов, будет выполняться предыдущий этап.В приведенном выше примере этап тестирования будет выполняться как на этапах «тест», так и на этапе «развертывание».Я думаю, что это бесполезно и добавит дополнительное время работы трубопровода.Я знаю, что могу напрямую вызвать цель плагина, но это будет трудно поддерживать пом.Любая хорошая идея?

1 Ответ

0 голосов
/ 05 июля 2019

Теоретически вы могли бы сделать это, если бы вы разделили ваш проект Maven на несколько модулей, которые делали разные вещи. Затем вы можете использовать расширенные опции реактора, чтобы возобновить сборку и обработку следующего модуля, используя:

maven -rf <module name> <command>

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

Смотрите здесь для получения дополнительной информации о продвинутых вариантах реактора:

https://blog.sonatype.com/2009/10/maven-tips-and-tricks-advanced-reactor-options/

...