Какой командой Maven собирать проект: mvn install или mvn package?
Быстрый ответ
Основное различие следующее: mvn package
собирает ваш код в JAR/WAR-файл для локального пользования, в то время как mvn install
помимо этого размещает собранный артефакт в локальном хранилище Maven, делая его доступным для других проектов.
mvn package # Сборка артефакта и подготовка к использованию
mvn install # Сборка артефакта и его установка в локальный репозиторий
Выбор между package и install: решающую роль играют цели проекта
Ваш выбор между mvn package
и mvn install
определяется целями вашего проекта, поскольку в Maven это разные фазы жизненного цикла сборки.
mvn package
— это ваш выбор, если требуется упаковать проект в JAR/WAR без дальнейшего его размещения в локальном хранилище.mvn install
— следует выбрать, когда необходимо скомпилировать код, упаковать его в артефакт и разместить в локальном репозитории Maven для последующего использования в других проектах.
Пакетирование, установка и тестирование
Если вам важно проверить качество кода, то mvn install
позволяет выполнить интеграционные тесты после пакетирования.
- Используйте
mvn verify
если необходимо прервать процесс непосредственно после тестирования и до установки артефакта в локальный репозиторий. mvn clean install
запускает сборку с нуля, предварительно удаляя старые сборки перед созданием нового пакета и его установкой.
Визуализация
Представим процессы mvn package
и mvn install
как две различные линии производства:
mvn package : Линия производства №1 📦: Преобразует и компилирует код, упаковывая его в формат JAR/WAR, готовый к использованию прямо с вашего рабочего места.
mvn install : Линия производства №2 🏬: К процессу пакетирования добавляет этап распределения продукта, перемещая его в «магазин» вашего локального репозитория Maven, для доступа другими проектами.
Выбор зависит от того, хотите ли вы использовать результаты работы только для себя или же разделить их с другими локальными проектами.
Сотрудничество на локальном уровне или внешне?
Maven предлагает различные способы для взаимодействия вашего проекта с командой.
- Если
mvn install
связывает ваш проект с другими на локальном уровне, тоmvn clean deploy
отправляет его в удаленный репозиторий для расширения доступа и сотрудничества.
Настройка IDE и сервера CI
Способ настройки вашей среды разработки и CI/CD сервера влияет на эффективность работы с командами Maven.
- Отсутствие необходимых зависимостей в локальном хранилище может привести к сбою на сервере CI.
- Правильная настройка Maven упрощает работу в IDE, таких как MyEclipse.
Для новичков и ветеранов Maven: глубокое погружение в знания
Независимо от того, только ли вы начали работу с Maven или же стремитесь углубить уже имеющиеся знания, важно всегда поддерживать информированность, пользуясь надежными источниками.
- Официальная документация Maven – это первоочередной источник познаний.
- Обучающие видео на YouTube и обсуждения на форумах помогут углубить понимание Maven.
Полезные материалы
- Maven за пять минут — Начинающим рекомендуется ознакомиться с Maven, используя данное официальное краткое руководство.
- Введение в жизненный цикл сборки — Поймите жизненный цикл Maven, обратившись к официальному руководству.
- Обсуждение на Stack Overflow: mvn 'package' vs 'install' — Ответы на свои вопросы можно найти в обсуждениях на Stack Overflow.
- Введение в профили сборки в Maven — В данном руководстве подробно рассказывается о настройке процессов сборки в Maven.
- Maven Урок 01 Часть 1 – Введение и настройка — Обзор основ Maven в видеоформате, включая команды package и install.
- Поиск в центральном репозитории Maven — Инструмент, который помогает искать артефакты и их версии в центральном репозитории Maven.
- Учебник по Maven от Jenkov — Глубокое погружение в Maven, шаг за шагом, от пакетирования до установки артефактов.