2010-08-04 6 views
24

У меня есть некоторые сомнения относительно нашей настройки на нашем сервере ci. Команда maven, используемая для создания приложений, настроена в бамбуке как «mvn install deploy».Maven установить и развернуть

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

Все, что необходимо, это «mvn deploy» для правильной сборки приложений.

Является ли мое понимание/наблюдение правильным?

+1

Ваше понимание верно –

+1

Разве не развертывается отдельное развертывание для обеспечения того, что развертывание будет достигнуто только в том случае, если весь проект (и модули) может быть успешно установлен (скомпилирован) до развертывания любого артефакта? –

+0

Да, ваше понимание верное. Мы также делали то же самое (т. Е. «Mvn pakcage deploy»). Это вызвало проблему, так же как и при запуске 'maven-jar-plugin' дважды, ошибка бросания: ' Вы должны использовать классификатор для присоединения дополнительных артефактов к проекту вместо их замены'. –

ответ

31

Да, все, что вам нужно сделать, это посмотреть жизненный цикл исполнения.

  • validate - validate the project is correct and all necessary information is available
  • compile - compile the source code of the project
  • test - test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
  • package - take the compiled code and package it in its distributable format, such as a JAR.
  • integration-test - process and deploy the package if necessary into an environment where integration tests can be run
  • verify - run any checks to verify the package is valid and meets quality criteria
  • install - install the package into the local repository, for use as a dependency in other projects locally
  • deploy - done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

Здесь вы можете увидеть, что установка происходит прямо перед развертыванием. Важно знать, что при запуске развертывания maven будет запускать все остальные этапы, а затем указать цель. Таким образом, запуская установку, затем развертывание будет запускаться для установки дважды, а затем одного развертывания.

Смежные вопросы