Недавно, когда я решил сделать свои проекты доступными для сообщества 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/