2016-09-16 5 views
2

Here представляет собой обзор плагинов jfrom artifactory. Они сказали:Почему jfrog maven искусственный плагин вызывается на этапе валидации?

Фаза вызова плагина «проверяется» по умолчанию, и мы рекомендуем вам не изменять ее, чтобы плагин вызывался как можно раньше в жизненном цикле вашей сборки Maven.

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

Вопрос: Почему это связано с этапом проверки?

ответ

1

Действительно, artifactory-maven-plugin применяет другой шаблон, чем обычные моджо (цель Maven): он полагается на Maven Lifecycle listeners/extensions.

смотря на его github repository, то харизма на самом деле:

  • Убеждается пропустить maven-deploy-plugindefault binding по settingmaven.deploy.skip свойства true
  • добавляет пользовательский Maven прослушиватель сборки сессии в BuildInfoRecorderLifecycleParticipant
  • Затем в нужный момент эффективно deploys через свой плагин.

Связывание с validate фазы необходимо эффективно пропускать поведение по умолчанию deploy и зарегистрировать свои слушатели.

+1

Это 100% правильный ответ. Причина, по которой мы это сделали, заключается в том, чтобы развернуть все модули многопроектной сборки сразу, предотвращая неудачную сборку для развертывания частичных результатов. – JBaruch

1

Я заглянул внутрь source code плагина и нашел эту строку:

String deployGoals = 'deploy,maven-deploy-plugin' 

Это поле используется в методе recordBuildInfo. Этот метод регистрирует класс BuildInfoRecorder в качестве слушателя, который calls является реальным методом deploy, когда session ends.