Какой командой Maven собирать проект: mvn install или mvn package?

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Основное различие следующее: mvn package собирает ваш код в JAR/WAR-файл для локального пользования, в то время как mvn install помимо этого размещает собранный артефакт в локальном хранилище Maven, делая его доступным для других проектов.

shell
Скопировать код
mvn package    # Сборка артефакта и подготовка к использованию
mvn install    # Сборка артефакта и его установка в локальный репозиторий
Кинга Идем в IT: пошаговый план для смены профессии

Выбор между 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 как две различные линии производства:

Markdown
Скопировать код
mvn package : Линия производства №1 📦: Преобразует и компилирует код, упаковывая его в формат JAR/WAR, готовый к использованию прямо с вашего рабочего места.
Markdown
Скопировать код
mvn install : Линия производства №2 🏬: К процессу пакетирования добавляет этап распределения продукта, перемещая его в «магазин» вашего локального репозитория Maven, для доступа другими проектами.

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

Сотрудничество на локальном уровне или внешне?

Maven предлагает различные способы для взаимодействия вашего проекта с командой.

  • Если mvn install связывает ваш проект с другими на локальном уровне, то mvn clean deploy отправляет его в удаленный репозиторий для расширения доступа и сотрудничества.

Настройка IDE и сервера CI

Способ настройки вашей среды разработки и CI/CD сервера влияет на эффективность работы с командами Maven.

  • Отсутствие необходимых зависимостей в локальном хранилище может привести к сбою на сервере CI.
  • Правильная настройка Maven упрощает работу в IDE, таких как MyEclipse.

Для новичков и ветеранов Maven: глубокое погружение в знания

Независимо от того, только ли вы начали работу с Maven или же стремитесь углубить уже имеющиеся знания, важно всегда поддерживать информированность, пользуясь надежными источниками.

  • Официальная документация Maven – это первоочередной источник познаний.
  • Обучающие видео на YouTube и обсуждения на форумах помогут углубить понимание Maven.

Полезные материалы

  1. Maven за пять минут — Начинающим рекомендуется ознакомиться с Maven, используя данное официальное краткое руководство.
  2. Введение в жизненный цикл сборки — Поймите жизненный цикл Maven, обратившись к официальному руководству.
  3. Обсуждение на Stack Overflow: mvn 'package' vs 'install' — Ответы на свои вопросы можно найти в обсуждениях на Stack Overflow.
  4. Введение в профили сборки в Maven — В данном руководстве подробно рассказывается о настройке процессов сборки в Maven.
  5. Maven Урок 01 Часть 1 – Введение и настройка — Обзор основ Maven в видеоформате, включая команды package и install.
  6. Поиск в центральном репозитории Maven — Инструмент, который помогает искать артефакты и их версии в центральном репозитории Maven.
  7. Учебник по Maven от Jenkov — Глубокое погружение в Maven, шаг за шагом, от пакетирования до установки артефактов.