Mvn clean install vs. deploy vs. release

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

mvn clean install

mvn release

mvn deploy

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

Ответ 1

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

mvn clean install

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

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

mvn deploy

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

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

mvn release

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

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

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

И затем:

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

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

См. также

Ответ 2

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

Ресурсы: