Статьи

Хотите разместить на Maven Central?

Недавно, когда я решил сделать свои проекты доступными для сообщества Java по лицензии Open Source, я сделал несколько вещей, таких как размещение своего кода в Google Code, использование Maven для создания и тестирования кода, а также проверка наличия проекта. сайт запущен и работает. Однако даже после всего этого не хватало одной вещи, которая была самой важной — «Размещение файлов проекта в репозитории, чтобы пользователи, которые могут найти эти утилиты полезными, могли их использовать».

Я начал исследовать то, что было возможно, и после небольшого исследования я обнаружил, что sonatype позволит мне развернуть мой код в Центральном репозитории Maven. Однако после 3 дней проб и ошибок я наконец-то смог выпустить версию своего кода для Центрального репо. Я пишу этот пост, так что если вы когда-нибудь захотите это сделать, вам не придется переживать ту же боль, что и я.

Предпосылки

  • Доменное имя, которое будет вашим groupId — я использовал kapilvirenahuja.com, который используется как «com.kapilvirenahuja»
  • Ключ PGP — это требование для вас подписать артефакты и загрузить его в Central. Вы можете обратиться к документу здесь за помощью о том, как можно генерировать ключи PGP.
  • Имейте под рукой имя пользователя и пароль вашего SVN, он понадобится вам при выполнении сборок и выпусков

 

Хостинг

Самый простой способ загрузить другой проект — использовать репозиторий Sonatype OSS , который является утвержденным репозиторием, предоставленным Sonatype для любого проекта OSS, который хочет получить свои артефакты в центральном репозитории.

Услуга предлагается в двух вариантах:

  • Служба хостинга репозитория Maven . Вы можете развертывать моментальные снимки, промежуточные выпуски и продвигать свои выпуски, чтобы они были опубликованы в Центральном репозитории.
  • Загрузка артефактов вручную : процесс в основном автоматизирован, а время обработки составляет в среднем 1 рабочий день.

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

После создания учетной записи вы получите по электронной почте уведомления о том, что вы готовы к работе. Следуйте инструкциям, приведенным в ссылке, и обновите свое POM согласно шагу 6 . Когда вы будете готовы, следуйте инструкциям в шаге № 7, и вы сможете развернуть код в каталог моментальных снимков. Если вы получили ошибку 401 или «Авторизация не удалась», проверьте следующее:

  • Идентификатор groupId в POM.XML совпадает с тем, что вы зарегистрировали для
  • Файл Settings.xml содержит имя пользователя и пароль Nexus. Вы можете запустить команду maven в режиме -X (отладка) и просмотреть журналы, чтобы проверить расположение файла settings.xml

Выпуск в Центральный

Как только у вас появятся артефакты в репозитории Snapshots, вы пройдете важный шаг в этом процессе, но следующий станет еще больше. Шаг 7.A.3 кажется простым , но это не так просто , особенно если вы использовали только MVN: компиляции в большинстве случаев. Убедитесь, что вы придерживаетесь стандартного макета каталога, и процесс завершится неудачей на последнем этапе.

Шаг 1

Первый шаг — очистить релиз с помощью плагина Maven.

mvn release:clean 

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

Шаг 2

Запустите следующую команду. Вам нужно будет передать имя пользователя и пароль через mvn. Команда должна быть

mvn release:prepare -Dusername=username -Dpassword=password

Это сделает следующее:

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

Пожалуйста, будьте осторожны при выборе номеров версий, потому что этот процесс обновит файлы POM, а также хранилище Subversion, добавив новый тег, а также обновив файл POM в текущем рабочем месте.

Шаг 3

mvn release:perform -Dusername=username -Dpassword=password

Это ненавязчивый метод, который просто загружает все в хранилище. Если вы пропустите имя пользователя и пароль, сборка не удастся без каких-либо описательных ошибок, и вам будет интересно, что пошло не так.

С http://scratchpad101.com/2011/09/08/project-files-maven-central/