В чем разница между "mvn deploy" для локального РЕПО и "mvn install"?



моя команда использует внутреннее РЕПО team maven, которое совместно используется с сервера разработки с помощью Apache. Мы также запускаем сервер Continuum CI на той же машине. Сборки Maven в Continuum запускаются с целью" установить", которая копирует конечный артефакт непосредственно в общий каталог.



вопрос в том, в чем разница между добавлением файлов в общее РЕПО с помощью mvn install и использованием цели развертывания (mvn-deploy plugin)?



Мне кажется, что с помощью mvn deploy создает дополнительные проблемы с конфигурацией, но я где-то читал, что установка файлов в общее РЕПО-это плохая идея по какой-то причине, связанной с внутренней работой maven.



update: я получаю функциональные различия между deploy и install; на самом деле меня больше интересуют детали низкого уровня с точки зрения того, какие файлы создаются в репозитории maven.

504   3  

3 ответов:

Кен, хороший вопрос. Я должен быть более явным в Полное Руководство о разнице. "установка" и "развертывание" служат двум различным целям в сборке. "установить" относится к процессу установки артефакта в локальном репозитории. "развертывание" относится к процессу развертывания артефакта в удаленном репозитории.

пример:

  1. когда я запускаю большой многомодульный проект на своей машине, я обычно собираюсь запустите "mvn install". Это позволит установить все сгенерированные бинарные программные артефакты (обычно JARs) в моем локальном репозитории. Затем, когда я создаю отдельные модули в сборке, Maven будет извлекать зависимости из локального репозитория.

  2. когда придет время для развертывания снимков или выпусков, я собираюсь запустить "mvn deploy". При этом будет предпринята попытка развернуть файлы в удаленном репозитории или на сервере. Обычно я собираюсь развертывать для менеджера репозитория, такого как Нексус

Это правда, что запуск "deploy" потребует некоторой дополнительной конфигурации, вам придется предоставить раздел distributionManagement в вашем POM.

из документов Maven, похоже, это просто разница в , который репозиторий вы устанавливаете пакет в:

  • install - установить пакет в локальный репозиторий, для использования как зависимость в других проектах локально
  • развертывание-выполняется в среде интеграции или выпуска, копирует окончательный пакет в удаленный репозиторий для совместного использования с другими разработчиками и проектами.

может есть какой путаница в том, что "установка"на сервер CI устанавливает его в локальный репозиторий, который затем вы как пользователь делитесь?

"matt b "имеет право, но, чтобы быть точным, цель" install " копирует вашу встроенную цель в локальный репозиторий в вашей файловой системе; полезно для небольших изменений в проектах, которые в настоящее время не предназначены для полной группы.

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

в вашем случае, кажется, что "установить" используется для управления развертывание проще, так как локальное РЕПО CI и общий РЕПО. Если CI был на другом поле, он должен был бы использовать цель "развернуть".

Comments

    Ничего не найдено.