Настройка Maven Nexus Server для коллективного использования встроенных jar-файлов

Моя команда только начинает использовать Maven в проектах Java. Теперь у нас есть все проекты, использующие Maven для получения зависимостей из Интернета, но мы хотели использовать репозиторий Maven для совместного использования общих классов Java, которые мы создаем и упаковываем в jar-файлы.

Я установил сервер Maven Nexus, и похоже, что он отлично работает в качестве прокси. Следующий шаг — взять один из созданных нами jar-файлов и развернуть его в локальном репозитории Nexus, чтобы любой разработчик мог поделиться им как зависимостью. Однако я понятия не имею, с чего начать.

Если я выполняю установку mvn, код помещается в локальный (Мой компьютер) репозиторий, а это не то, что мне нужно. Я хочу установить его в репозиторий Nexus, чтобы все члены моей команды могли получить к нему доступ. Пожалуйста, помогите мне.


person techsjs2012    schedule 05.10.2012    source источник


Ответы (2)


Вы, вероятно, немного знаете об этом, но вот высокоуровневый обзор (для других) о настройке репозитория Maven.

После того, как у вас есть репозиторий, вам нужно вернуться к каждому из зависимых проектов (или если они совместно используют главный pom) и определить репозиторий, чтобы он был добавлен в исходные репозитории, которые будут извлекаться для сборок.

Я использовал Apache's Archiva с хорошими результатами, и он поддерживает функцию "кэширующего прокси" для запросов проектов Maven, например что он будет загружать и собирать двоичные артефакты из вышестоящих репозиториев, если он не может обслуживать сам двоичный артефакт. Тем не менее, документация могла бы быть немного лучше.

Есть и другие продукты, такие как Artifactory, которые пользуются хорошей репутацией. Возможно, вы захотите рассмотреть его как кандидата на оценку.

Для ваших сборок не нужна система управления репозиторием, как подойдет любому ssh-серверу с правильной структурой каталогов; тем не менее, наличие такой системы может облегчить вам жизнь за счет автоматического кэширования в сочетании с проксированием запросов, предоставления средств для управления доступом пользователей, структурирования и управления несколькими репозиториями (разработка/выпуск QA/общая доступность) и создания нечетных отчетов, которые могут усложнить управление. легче (если вы их используете).

Что касается фактического использования такого сервера, вам нужно будет изменить две «части» вашего pom и один (возможно) дополнительный файл, который вам нужно будет добавить.

  1. Вам нужно будет перенастроить раздел ‹repositories› вашего проекта, чтобы получать данные из репозиториев.
  2. Вам придется перенастроить раздел ‹distributionManagement› вашего проекта для развертывания в новых репозиториях.
  3. Вам нужно будет изменить или создать файл «settings.xml» для хранения учетных данных для доступа к репозиторию.

Кроме того, это становится вопросом стиля. Я рекомендую отделить снимки от «релизов», настроив два репозитория. Это позволяет вам часто удалять старые файлы из репозиториев моментальных снимков без риска для давно используемых версий выпуска.

Затем вам нужно решить, собираетесь ли вы кэшировать все элементы, необходимые для сборки собственными силами. Если это так, вам нужно перенастроить проекты, чтобы они не извлекались из «внешних» репозиториев, и загружали «отсутствующие» артефакты в правильный каталог в вашем репозитории. Функция «автоматического прокси-кэширования» многих продуктов для управления репозиториями делает именно это.

Затем вам нужно решить, собираетесь ли вы кэшировать все подключаемые модули для системы maven собственными силами. Если это так, вам понадобится pluginRepository, а если вы когда-нибудь захотите развернуть собственный подключаемый модуль, pluginSnapshotRepository. Да, это звучит как много, но сделать четыре таких репозитория одновременно немного сложнее, чем сделать один.

Удачи!

person Edwin Buck    schedule 05.10.2012

Вы можете выполнить развертывание или установку своих артефактов с помощью подключаемого модуля maven DistributionManagement. Подробнее здесь. http://www.stefanolocati.it/blog/?p=1034

person uncaught_exceptions    schedule 05.10.2012