create - Настройка удаленного удаленного хранилища Maven




private maven repository (2)

Я пытаюсь создать частный удаленный репозиторий для нашей команды. Теперь репозиторий обслуживает следующее: я уже пробовал -

  • Когда выдается « mvn compile », он ищет зависимости в «~ / .m2». Если он не найден там, он переходит в удаленный приватный репозиторий, и когда зависимости все еще отсутствуют здесь, он переходит в центральный репозиторий.

  • Перед компиляцией я должен поместить все зависимости в наш частный (и удаленный) репозиторий вместе с контрольной суммой и метаданными.

  • Когда нам нужен артефакт (например, spring-mvc), нам нужно поместить его в удаленный приватный репозиторий вместе со всеми зависимостями этого артефакта (spring-mvc). В этом случае «spring-mvc» загружается из нашего удаленного частного репозитория. Но зависимости «spring-mvc» не загружаются из нашего удаленного частного репозитория. Они загружаются из центрального хранилища.

Теперь то, что я пытаюсь сделать,

  • Конфигурирование частного удаленного репозитория «R» таким образом, что мне не нужно связывать все зависимости от него вручную. Когда «mvn compile» выдается, прежде всего; поиск зависимостей происходит в «~ / .m2», если не найден, то он переходит в частный удаленный репозиторий «R». Если зависимости найдены в «R», тогда «~ / .m2» получит его из «R». Если зависимости не найдены в «R», эти зависимости загружаются из центральных репозиториев и сохраняют зависимости в «R» для дальнейшего использования. После этого «~ / .m2» получит их из «R». Здесь мне не нужно вручную устанавливать зависимости в нашем удаленном частном репозитории «R».

  • '~ / .m2' получит все зависимости от «spring-mvc» (которая является основной зависимостью, упомянутой в pom.xml моего проекта) из удаленного частного репозитория «R» и «R» выведет их из соответствующего центрального репозитория ,

Может ли кто-нибудь предложить какой-либо путь / или учебник для справки для удовлетворения этих двух вышеуказанных целей? Заранее спасибо.

EDIT: Я пробовал ответить Nathaniel Waisbrot и nexus-2.7.0-06-bundle. После нескольких часов работы я могу настроить его, пока я использую jre-7. С jre-6 связь не может быть запущена. Но наш проект развернут с JDK-6. Мы не хотим менять текущую версию jre . С jre-6 apache-archiva в порядке. Но я не уверен, смогу ли я достичь всех целей в предыдущем разделе. Есть ли пользователь / эксперт archiva который может сказать мне, могу ли я выполнить эти цели в предыдущем разделе?


Sonatype Nexus делает все, что вы хотите, нуждается в очень небольшой конфигурации для того, что вы просите, и имеет приятный интерфейс. Есть некоторые подробности по базовой настройке под вопросом « Внутренний репозиторий Maven, действительно ли это сложно? »

В принципе, вы можете настроить Nexus как хранилище кеширования: ваш клиент Maven будет посещать только внутренний репозиторий. Когда внутренний репозиторий не может найти артефакт, он отправляется в Central (или любые другие внешние репозитории, которые вы определяете), извлекает его для вас и сохраняет его позже.

Это классно, потому что, если вы хотите перейти от режима grab-whatever-dependencies-you-want-free-for-all к заблокированной среде, Nexus упростит работу. Вы настроите его, чтобы вытащить из центра, запустите свою сборку с чистой машины (заставляя Nexus загладить все текущие центральные зависимости), а затем отключите функцию proxy-repo (так что любые новые / измененные зависимости будут управляться devops).


То, что вы описали, в значительной степени является конфигурацией по умолчанию для большинства менеджеров репозитория, включая Archiva. Помогает ли следующая помощь в ее настройке для использования с Maven?

http://archiva.apache.org/docs/1.3.6/userguide/using-repository.html





archiva