Какие именно различия между mvn clean packageи mvn clean install? Когда я запускаю обе эти команды, кажется, что они делают одно и то же.
Какие именно различия между mvn clean packageи mvn clean install? Когда я запускаю обе эти команды, кажется, что они делают одно и то же.
Ответы:
Ну, оба будут чистыми. Это означает, что они будут удалять целевую папку. Вопрос в том, в чем разница между пакетом и установкой?
packageскомпилирует ваш код, а также упакует его. Например, если ваш pom говорит, что проект - это jar, он создаст для вас jar, когда вы упакуете его и поместите где-нибудь в целевой каталог (по умолчанию).
installскомпилирует и упакует, но также поместит пакет в ваш локальный репозиторий. Это позволит другим проектам ссылаться на него и извлекать его из вашего локального репозитория.
mvn clean installне быстрее чем mvn package.
Что делает clean (обычно в обеих командах) - удаляет все файлы, сгенерированные предыдущей сборкой
В связи с разницей между пакетом команд и установкой , сначала необходимо понять жизненный цикл проекта maven.
Это фазы жизненного цикла по умолчанию в Maven
Maven работает так: если вы запускаете команду для любой из фаз жизненного цикла, он выполняет каждую фазу жизненного цикла по умолчанию по порядку, прежде чем выполнить саму команду.
порядок исполнения
проверить >> собрать >> проверить (необязательно) >> пакет >> проверить >> установить >> развернуть
Поэтому, когда вы запускаете команду mvn package , она запускает команды для всех этапов жизненного цикла до пакета
валидировать >> компилировать >> тестировать (необязательно) >> пакет
А что касается установки mvn , она запускает команды для всех этапов жизненного цикла до установки, включая пакет
проверить >> собрать >> проверить (необязательно) >> пакет >> проверить >> установить
Таким образом, фактически это означает, что команды install делают все, что делает команда package , и некоторые другие (устанавливают пакет в локальный репозиторий, для локального использования в качестве зависимости в других проектах).
Источник: ссылка на жизненный цикл Maven
Пакет сгенерирует Jar / war в соответствии с файлом POM. install установит сгенерированный файл jar в локальный репозиторий для других зависимостей, если таковые имеются.
фаза установки наступает после фазы пакета
Пакет и установка - это различные этапы жизненного цикла сборки maven. Фаза пакета выполнит все фазы до этого и остановит упаковку проекта в качестве фляги. Аналогично, фаза установки выполнит все предыдущие фазы и, наконец, установит проект локально для других зависимых проектов.
Для понимания жизненного цикла сборки maven перейдите по следующей ссылке https://ayolajayamaha.blogspot.in/2014/05/difference-between-mvn-clean-install.html.
packageдобавит упакованный jarили warв вашу targetпапку, мы можем проверить это, когда мы очистим целевую папку (используя mvn clean), а затем запустим mvn package.
installбудет делать все то, что packageделает, кроме того, он будет добавлять в пакетном jarили warлокальном хранилище, а также. Мы можем подтвердить это, проверив в вашей .m2папке.
packageиinstall.