mvn чистая установка против развертывания против выпуска - PullRequest
113 голосов
/ 07 сентября 2010

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

mvn clean install

mvn release

mvn deploy

Пожалуйста, дайте как можно более подробное описание.

Ответы [ 2 ]

202 голосов
/ 07 сентября 2010

Фазы clean, install и deploy действительны фазы жизненного цикла , и их запуск вызовет все предшествующие им фазы и цели, связанные с этими фазами,

mvn clean install

Эта команда вызывает фазу clean, а затем последовательно фазу install:

  • clean: удаляет файлы, созданные во время сборки в каталоге проекта (target по умолчанию)
  • install: устанавливает пакет в local хранилище, для использования в качестве зависимости в других проектах локально .

mvn deploy

Эта команда вызывает фазу deploy:

  • deploy: копирует окончательный пакет в удаленный репозиторий для совместного использования с другими разработчиками и проектами .

mvn release

Это не действительный этап и не цель, поэтому это ничего не изменит.Но if относится к плагину релиза Maven , который используется для автоматизации управления релизами.Выпуск проекта осуществляется в два этапа: prepare и perform.Как документировано:

Подготовка релиза проходит следующие фазы релиза:

  • Убедитесь, что в источниках нет незафиксированных изменений
  • Проверьте, что естьнет зависимостей SNAPSHOT
  • Измените версию в POM с x-SNAPSHOT на новую версию (вам будет предложено указать версии для использования)
  • Преобразуйте информацию SCM в POM, чтобы включитьконечный пункт назначения тега
  • Запустите тесты проекта для измененных POM, чтобы убедиться, что все в рабочем состоянии
  • Зафиксируйте измененные POM
  • Пометьте код в SCM с помощьюимя версии (это будет запрошено)
  • Увеличить версию в POM на новое значение y-SNAPSHOT (для этих значений также будет запрошено)
  • Зафиксировать измененные POM

И затем:

Выполнение выпуска запускает следующие фазы выпуска:

  • Извлечение из URL-адреса SCM с необязательным тегом
  • Запуск предопределенных целей Maven для выпуска проекта (по умолчанию развертывание site-deploy)

См. Также

24 голосов
/ 07 сентября 2010
  • mvn install поместит ваш упакованный проект maven в локальный репозиторий для локального приложения, использующего ваш проект в качестве зависимости.
  • mvn release в основном поместит ваш текущийкод в теге на вашем SCM, измените свою версию в своих проектах.
  • mvn deploy поместит ваш упакованный проект maven в удаленный репозиторий для совместного использования с другими разработчиками.

Ресурсы:

...