Подтвердить что ты не робот

Как отличаются "mvn clean package" и "mvn clean install"?

В чем заключаются различия между mvn clean package и mvn clean install? Когда я запускаю обе эти команды, они оба, похоже, делают то же самое.

4b9b3361

Ответ 1

Ну, оба будут чистыми. Это означает, что они будут удалять целевую папку. Реальный вопрос в том, какая разница между пакетом и установкой?

package скомпилирует ваш код, а также упакует его. Например, если ваш pom говорит, что проект - это jar, он создаст для вас jar, когда вы упакуете его и поместите где-нибудь в целевой каталог (по умолчанию).

install скомпилирует и упакует, но также поместит пакет в ваш локальный репозиторий. Это позволит другим проектам ссылаться на него и извлекать его из вашего локального хранилища.

Документация

Ответ 2

Что делает clean (обычно в обеих командах) - удаляет все файлы, сгенерированные предыдущей сборкой


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


Это фазы жизненного цикла по умолчанию в Maven

  • validate - подтвердить правильность проекта и получить всю необходимую информацию
  • compile - скомпилировать исходный код проекта
  • test - протестируйте скомпилированный исходный код, используя подходящую среду модульного тестирования. Эти тесты не должны требовать, чтобы код был упакован или развернут
  • package - взять скомпилированный код и упаковать его в распространяемый формат, такой как JAR.
  • проверить - выполнить любые проверки результатов интеграционных тестов, чтобы убедиться в соответствии критериям качества
  • установить - установить пакет в локальный репозиторий, для локального использования в качестве зависимости в других проектах
  • развертывание - выполняется в среде сборки, копирует окончательный пакет в удаленный репозиторий для совместного использования с другими разработчиками и проектами.

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

порядок исполнения

проверить >> собрать >> проверить (необязательно) >> пакет >> проверить >> установить >> развернуть

Поэтому, когда вы запускаете команду mvn package, она запускает команды для всех этапов жизненного цикла до пакета

валидировать >> компилировать >> тестировать (необязательно) >> пакет

Что касается установки mvn, она запускает команды для всех этапов жизненного цикла до установки, включая пакет

проверить >> собрать >> проверить (необязательно) >> пакет >> проверить >> установить


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

Источник: ссылка на жизненный цикл Maven

Ответ 3

пакет будет генерировать Jar/war в соответствии с файлом POM. установить будет устанавливать сгенерированный файл jar в локальный репозиторий для других зависимостей, если он есть.

установить фаза начинается после фазы

Ответ 4

Пакет и установка - это различные фазы в жизненном цикле сборки maven. фаза пакета будет выполнять все этапы до этого, и она прекратится с упаковкой проекта в виде банки. Аналогичным образом, этап установки будет выполнять все предыдущие фазы и, наконец, установить проект локально для других зависимых проектов.

Для понимания жизненного цикла сборки maven пройдите следующую ссылку https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html

Ответ 5

package добавит упакованный jar или war в вашу target папку. Мы можем проверить это, когда мы очистим целевую папку (используя mvn clean) и затем запустим mvn package.
install сделает все, что делает package, кроме того, он добавит упакованный jar или war в локальный репозиторий. Мы можем подтвердить это, проверив вашу папку .m2.