Различия команд "mvn clean install" и "mvn install" в Maven

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

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

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

Команда mvn clean install можно сравнить с началом нового дня: при этом мы принимаем душ и надеваем свежую одежду, чтобы все было чисто и ново. Аналогично, данная команда удаляет директорию target, очищая проект от следов предыдущих сборок.

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

mvn clean install    // Начинаем с чистого листа: очищаем и возобновляем сборку проекта. 
mvn install          // Экономим время: используем уже готовые модули, если они актуальны.
Кинга Идем в IT: пошаговый план для смены профессии

Когда использовать каждую команду

Свежая сборка с "mvn clean install"

Запускайте mvn clean install, когда:

  • Вы внесли значительные изменения в проект, в том числе добавили или удалили модули.
  • Добавились или изменились зависимости, которые могут прийти в конфликт со старыми скомпилированными файлами.
  • Предыдущая сборка была осуществлена некорректно и могла оставить нерешенные проблемы.

Быстрая сборка с "mvn install"

Используйте mvn install, когда:

  • Требуется быстро проверить незначительные изменения в коде.
  • Хотите экономить время на этапах тестирования и развертывания.
  • Уверены, что старые артефакты не повлияют на новую сборку.

Опасности, скрывающиеся за каждой командой

Важно понимать, когда и как правильно использовать каждую команду:

  • Если проект начинает проявлять непредсказуемое поведение, выполнение mvn install может привести к переплетению старых ошибок. Чтобы предотвратить это, лучше запустить mvn clean install.
  • Не забывайте, что команда clean полностью удаляет содержимое директории target. Так что будьте внимательны и не утратите важные результаты предыдущих сборок.
  • Для оптимизации сборок в больших проектах стоит очищать только отдельные модули, а не весь проект сразу.

Визуализация

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

При использовании mvn install:

Markdown
Скопировать код
Мы собираем готовые артефакты и помещаем их в локальный репозиторий, оставляя остальной код без изменений.

При использовании mvn clean install:

Markdown
Скопировать код
Мы сперва очищаем проект от всех ненужных элементов, затем создаем и сохраняем чистые и свежие артефакты.

Основная визуализация:

🚮🌿 -> 🌱🌷 -> 🍅 -> 📦

(Убираем старое, высаживаем новое, убираем урожай, сохраняем его)

Освоение жизненного цикла Maven

Выполнение команды mvn clean install позволяет обеспечить стабильность и воспроизводимость сборок, что имеет критическое значение для процессов CI/CD. Это гарантирует, что любые изменения в коде будут пройдены через полный цикл проверки, и в результате получатся надежные и протестированные артефакты.

Ускорение процесса сборки с помощью фаз и целей

С помощью использования только необходимых целей и фаз можно существенно ускорить процесс сборки:

  • Определите свои собственные этапы очистки и сборки, при этом настроив определенные цели плагинов к нужным фазам.
  • Воспользуйтесь условной очисткой с помощью профилей Maven для оптимизации времени на сборку.
  • В больших проектах экономьте время, используя поэтапную сборку и раздел <dependencyManagement> для инкрементных изменений.

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

  1. Подробная информация о жизненном цикле Maven
  2. Введение в плагин Apache Maven Clean
  3. Введение в плагин Apache Maven Install
  4. Обсуждение различий между "mvn clean install" и другими командами Maven
  5. Руководство для новичков по Maven