mvn: чистая установка против развертывания и выпуска

132

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

mvn clean install

mvn release

mvn deploy

Пожалуйста, будьте как можно более наглядны.

myusuf3
источник

Ответы:

223

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

mvn clean install

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

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

Mvn развертывания

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

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

выпуск mvn

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

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

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

А потом:

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

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

Смотрите также

Паскаль Тивент
источник
1
Не могли бы вы прояснить это: это недопустимая фаза или цель, поэтому это ничего не даст. Но если относится к плагину Maven Release. Если это не этап и не цель, то как это назвать?
gvlasov
26
  • mvn installпоместит ваш упакованный проект maven в локальный репозиторий для локального приложения, использующего ваш проект в качестве зависимости.
  • mvn release в основном поместит ваш текущий код в тег на вашем SCM, изменит вашу версию в ваших проектах.
  • mvn deployпоместит ваш упакованный проект maven в удаленный репозиторий для совместного использования с другими разработчиками.

Ресурсы :

Колин Хеберт
источник