Ответ 1
Существует руководство к центральному репозиторию, в котором есть раздел по загрузке проектов, которые могут помочь. Если ничего другого вы не можете проверить соглашения об именах и минимальные требования к информации в отношении вашего проекта.
Sonatype также делает хостинг репозитория OSS, см. их руководство для деталей.
Обновление: я не говорю, что вы должны изменить процесс сборки - если Ant работает, вы будете придерживаться его. Это стоит следовать соглашениям Maven в вашем POM независимо от вашего метода сборки. Поскольку точка размещения вашей банки в репозитории Maven должна сделать ее доступной для пользователей Maven, вам необходимо будет определить POM для вашего опубликованного артефакта. Следуя соглашениям об именах, вы сможете помочь своим пользователям, чтобы вы могли это сделать. Например, добавление данных SCM в pom (среди прочего) позволит вашим пользователям импортировать проект в рабочее пространство, используя интеграцию IDE для Maven.
В принципе, у вас есть 4 варианта:
- Выполните стандартную сборку Maven против репозитория Maven (уже исключено)
- Настройте репозиторий Maven, создайте свои сборки с помощью Ant и используйте Maven для развертывания jar и POM.
- Настройте репозиторий Maven, используйте Ant HTTP-задачу для публикации артефактов
- Используйте репозиторий Subversion и используйте задачу SvnAnt для публикации артефактов
Вариант 1
Используйте Maven для создания и развертывания артефактов (подробнее см. книгу Maven и приведенные выше ссылки).
Вариант 2
Предполагая, что у вас есть процесс сборки, который создает вашу банку, и вы определили POM, лучше всего опубликовать его в репозитории OAT Sonatype, как указано выше.
Развертывание существующей банки в стандартный репозиторий Maven прост с целью развертывания плагина Maven:
- Настройте свой репозиторий (например, на серверах Sonatype, подняв запрос Jira)
- Создайте свою банку с помощью Ant.
- Если вы определили POM, поместите его в тот же каталог, что и jar.
-
Запустите цель развертывания:
mvn deploy: deploy-file -Durl = http://path/to/your/repository \ -DrepositoryId = some.id \ -Dfile = путь к вашему артефакту-банку \ -DpomFile = путь к вашей-pom.xml
Обратите внимание, что цель развертывания Maven автоматически преобразует pom.xml в [project-name] - [version].pom. Если вы выполняете одну из двух других альтернатив, вам необходимо убедиться, что вы передаете POM с окончательным именем, то есть [имя-проекта] - [версия].pom. Вам также необходимо обеспечить составление относительных путей для артефактов, следующих за соглашениями Maven.
например. для groupId = com.foo.bar, artifactId = my-project version = 1.0.0, путь к файлам будет:
/com/foo/bar/my-project/my-project-1.0.0.jar
/com/foo/bar/my-project/my-project-1.0.0.pom
Вариант 3
Если вы хотите использовать Ant для развертывания в репозитории Maven, вы можете использовать Ant HTTP-библиотеку (Примечание I" я не пробовал это сам). Вы бы создали две задачи HTTP put, одну для jar и одну для POM.
<httpput url="http://path/to/your/repository" putFile="/path/to/yourproject.pom">
<userCredentials username="user" password="password"/>
</httpput>
<httpput url="http://path/to/your/repository" putFile="/path/to/yourproject.jar">
<userCredentials username="user" password="password"/>
</httpput>
Вариант 4
Если вы хотите полностью отказаться от Maven и использовать Ant для развертывания в хранилище с поддержкой SVN, вы можете использовать SvnAnt Subversion library, вам просто нужно будет сконфигурировать задачу Svn import, чтобы добавить ваши артефакты в репозиторий Remote Subversion.
<import path ="/dir/containing/the/jar/and/pom"
url="svn://your/svn/repository"
message="release"/>