Я заинтересован в поддержке репозитория Maven 2 для моей организации. Каковы некоторые из указателей и подводных камней, которые могут помочь?
Каким руководящим принципам должны следовать пользователи при настройке стандартов для загрузки или публикации собственных артефактов в репозиторий при выпуске своего кода? Какие виды управления / правила у вас есть для такого рода вещей? Что вы включили об этом в руководство / документацию разработчика?
ОБНОВЛЕНИЕ. Мы поддержали Nexus и остались им очень довольны - следовали большинству рекомендаций Сэла и у нас не было никаких проблем. Кроме того, мы ограничили доступ к развертыванию и автоматизировали сборку / развертывание артефактов моментальных снимков через сервер Hudson CI. Hudson может анализировать все зависимости проекта вверх / вниз по течению, поэтому, если проблема компиляции, сбой теста или какое-либо другое нарушение вызывает сбой сборки, развертывание не произойдет. Будьте утомлены развертыванием моментальных снимков в Maven2 / Maven3, поскольку метаданные изменились между двумя версиями. Стратегия развертывания моментальных снимков «только Hudson» смягчит это. Мы не используем плагин Release, но кое-что сделали вокруг плагина Versions, когда собираюсь переместить снимок для выпуска. Мы также используем m2eclipse, и он, кажется, очень хорошо работает с Nexus, поскольку из файла настроек он может видеть Nexus и знает, как индексировать информацию об артефакте для поиска оттуда. (Хотя мне пришлось настроить некоторые из этих параметров, чтобы он полностью индексировал наши внутренние снимки состояния.) Я также рекомендую вам развернуть исходный jar-файл с вашими артефактами в качестве стандартной практики, если вы заинтересованы в этом. Мы настраиваем это в супер-ПОМ.
ОБНОВЛЕНИЕ 2: я наткнулся на это Технический документ Sonatype, в котором подробно описаны различные этапы внедрения / зрелости, каждый из которых имеет разные цели использования для менеджера репозитория Maven.