Один пакет (строит его в target) и при установке (упаковывает и помещает его в ваш репозиторий). Вам нужно сделать позже, если вы хотите использовать эту версию в другом модуле.
Питер Лори
3
Возможно, это должно быть вновь открыто? Ответ вполне возможен, и мне не трудно было ответить. Кроме того, если кто-то является новичком в Maven, легко увидеть, как две фазы делают одно и то же. Я отредактирую это в попытке сделать его менее расплывчатым.
Даниэль Каплан
Ответы:
371
Ну, оба будут чистыми. Это означает, что они будут удалять целевую папку. Вопрос в том, в чем разница между пакетом и установкой?
packageскомпилирует ваш код, а также упакует его. Например, если ваш pom говорит, что проект - это jar, он создаст для вас jar, когда вы упакуете его и поместите где-нибудь в целевой каталог (по умолчанию).
installскомпилирует и упакует, но также поместит пакет в ваш локальный репозиторий. Это позволит другим проектам ссылаться на него и извлекать его из вашего локального репозитория.
Почему mvn устанавливается быстрее, чем пакет mvn?
lostintranslation
9
@SharadHolani, потому что сборки являются инкрементными. mvn clean installне быстрее чем mvn package.
OrangeDog
Для моего проекта сборка пакета mvn: один сборочный файл jar занимает больше времени, чем установка mvn. Упаковать и установить обе сборки эквивалентные толстые банки?
lostintranslation
1
@RakeshYadav да, это так
Даниэль Каплан
118
Что делает clean (обычно в обеих командах) - удаляет все файлы, сгенерированные предыдущей сборкой
В связи с разницей между пакетом команд и установкой , сначала необходимо понять жизненный цикл проекта maven.
Это фазы жизненного цикла по умолчанию в Maven
validate - подтвердить правильность проекта и получить всю необходимую информацию
compile - скомпилировать исходный код проекта
test - протестируйте скомпилированный исходный код, используя подходящую среду модульного тестирования. Эти тесты не должны требовать, чтобы код был упакован или развернут
package - взять скомпилированный код и упаковать его в распространяемый формат, такой как JAR.
проверить - выполнить любые проверки результатов интеграционных тестов, чтобы убедиться в соответствии критериям качества
установить - установить пакет в локальный репозиторий, для локального использования в качестве зависимости в других проектах
deploy - выполняется в среде сборки, копирует окончательный пакет в удаленный репозиторий для совместного использования с другими разработчиками и проектами.
Maven работает так: если вы запускаете команду для любой из фаз жизненного цикла, он выполняет каждую фазу жизненного цикла по умолчанию по порядку, прежде чем выполнить саму команду.
Таким образом, фактически это означает, что команды install делают все, что делает команда package , и некоторые другие (устанавливают пакет в локальный репозиторий, для локального использования в качестве зависимости в других проектах).
Это должно быть помечено как принятый ответ. Это четко определяет и помогает оператору понять, какие этапы жизненного цикла maven существуют и почему mvn install включает пакет mvn, но не наоборот.
Джасмит Сингх
1
Maven в двух словах, отлично!
CodeSlave
19
Пакет сгенерирует Jar / war в соответствии с файлом POM.
install установит сгенерированный файл jar в локальный репозиторий для других зависимостей, если таковые имеются.
сначала произойдет упаковка, затем будут установлены эти пакеты (jar / war).
Абдул Гафур
1
Msgstr "Фаза установки следует за фазой пакета". То, как это в настоящее время сформулировано, является обратным. «После» означает «после».
Чарльз Вуд
11
Пакет и установка - это различные этапы жизненного цикла сборки maven. Фаза пакета выполнит все фазы до этого и остановит упаковку проекта в качестве фляги. Аналогично, фаза установки выполнит все предыдущие фазы и, наконец, установит проект локально для других зависимых проектов.
Что вы подразумеваете под «и, наконец, установите проект локально для других зависимых проектов»
Арун Говда
2
@ArunGowda означает, что в .m2, который создается в вашей системе после установки maven, будут добавлены проекты, которые вы упаковываете, и они будут доступны для других проектов в качестве зависимости.
JAVA
картинка 1000 слов, у кого есть схема?
@MrCholo mvn install поместит банку / войну в репозиторий Maven . Место , где все ваши зависимости Maven откладывается, обычно ~ / .m2
BRT
6
packageдобавит упакованный jarили warв вашу targetпапку, мы можем проверить это, когда мы очистим целевую папку (используя mvn clean), а затем запустим mvn package.
installбудет делать все то, что packageделает, кроме того, он будет добавлять в пакетном jarили warлокальном хранилище, а также. Мы можем подтвердить это, проверив в вашей .m2папке.
package
и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
папке.источник