Я бы порекомендовал установить один сервер Nexus с как минимум четырьмя репозиториями. Я бы не рекомендовал артефакт. Бесплатная версия Nexus отлично подходит для разработчиков менее 20 в менее чем трех группах. Если у вас больше пользователей, чем это, сделайте себе одолжение и заплатите за выпуск Sonatype. Интеграция с LDAP окупается.
- Внутренний выпуск
- Внутренний снимок
- Внутренняя третья сторона для кода, используемого в доме, который поступает из внешних источников, или для утвержденных сторонних версий. Разместите здесь драйверы JDBC, javax. * И прочее от клиентов и партнеров.
- Внешние прокси общий прокси для всех обычных источников, таких как m2, codehaus и т. Д.
Настройка Nexus для выполнения следующих операций для внутренних репозиториев
- Удаление старых снимков через равные промежутки времени
- Удаление снимков при выпуске
- Создание индексных файлов. Это также ускоряет локальные сборки
Иметь общий файл settings.xml, в котором используются эти четыре и только эти четыре источника. Если вам нужно выполнить настройку, попробуйте сохранить общую часть файла настроек и используйте профили для различий. Не позволяйте вашим клиентам просто накатывать свои собственные настройки, иначе вы получите код, который создается на одной машине, но не на любой другой машине.
Предоставьте общий прокси для ваших клиентов. В Nexus вы можете добавить несколько прокси к общим источникам Maven (Apache, JBoss, Codehaus) и иметь один прокси, доступный для внутренних клиентов. Это значительно упрощает добавление и удаление источников из ваших клиентов.
Не смешивайте внутренние и сторонние артефакты в одном и том же хранилище. Nexus позволяет добавлять файлы JAR во внутренний репозиторий через веб-интерфейс. Я рекомендую это как способ добавления ваших драйверов JDBC и другого внешнего кода третьим лицам. Пользовательский интерфейс довольно удобен в использовании по сравнению с большинством корпоративных программ .
Определите общий родительский POM , который определяет внутренний снимок и выпускает репозитории с помощью тега distributionManagement . Я знаю, что многие люди говорят вам не делать этого. И хотя я свободно признаю, что с этим возникают всевозможные проблемы, все будет хорошо, если клиенты будут создавать только выпуски и снимки для развертывания в одном внутреннем репозитории.
Если у вас есть существующее неправильно управляемое хранилище Maven , создайте 5-е хранилище под названием Legacy и поместите туда все хранилища. Установите задачу cron для удаления старых файлов из старых, когда им исполнился год. Это дает всем год, чтобы уйти от этого и обновить свои poms.
Создание простого соглашения о присвоении имен для внутренних артефактов. Я предпочитаю GroupID Department.Function.Project и ArtifactId для этого componentName . Для внутренних репозиториев, com / org / net и название компании, скорее всего, не будут иметь значения. И неправильно, если компания меняет название. Гораздо менее вероятно, что отдел продаж, бухгалтерии или инвентаря будет переименован.