Подтвердить что ты не робот

Репозиторий Maven для проекта Google Code

У меня есть небольшой проект с открытым исходным кодом в Google Code, и меня попросили отправить банку в общедоступный репозиторий Maven. У меня почти нет практических знаний о Мейвене. Какой был бы лучший способ сделать это?

Есть ли какой-то центральный репозиторий, который я могу отправить, или могу ли я разместить свой собственный? Что мне нужно сделать, когда я хочу выпустить новую версию банку?

Я был Googling и нашел этот, который выглядит красиво и просто, но кажется немного... вопреки духу Maven, чтобы передать файлы jar SVN:).

Кроме того, будет ли способ отслеживать количество скачиваний, как это делает Google Code?

ИЗМЕНИТЬ

Я получаю ответы, некоторые из которых содержат подсказки о том, что добавить в мой pom.xml. Спасибо, парни! Но, очевидно, я забыл упомянуть одну важную вещь: моя сборка script находится в ANT, и, если честно, я намерен сохранить ее таким образом:). Я просто хочу, чтобы пользователям Maven было проще включить мою банку в свои проекты.


Решение, с которым я пошел, в конце

В конце концов, раньше я использовал решение я , где я просто передаю репозиторий Maven для SVN. У меня есть вызов ANT script Maven для настройки локального репо, а затем вызов SVN, чтобы передать его в Google Code. Для заинтересованных: посмотрите на мою конструкцию script здесь, в publish-maven target.

4b9b3361

Ответ 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"/>

Ответ 2

Проверить wagon-svn. Это позволит вам "развернуть" в репозиторий Subversion. Это немного запутанно, но это лучше, чем ничего. Я знаю несколько проектов, которые используют его на java.net, и я также наткнулся на некоторые проекты, используя его на code.google.com.

Если вы хотите его использовать, вам сначала нужно загрузить wagon-svn в качестве расширения:

  <build>
    ...
    <extensions>
      <extension>
        <groupId>org.jvnet.wagon-svn</groupId>
        <artifactId>wagon-svn</artifactId>
        <version>...</version>
      </extension>
    </extensions>

Затем вам нужно установить целевые показатели развертывания, используя идентификатор svn: protocol. Вот пример, который я скопировал из Интернета.

<distributionManagement>
    <repository>
        <id>maven-config-processor-plugin-repo-releases</id>
        <name>Maven Repository for Config Processor Plugin (releases)</name>
        <url>svn:https://maven-config-processor-plugin.googlecode.com/svn/maven-repo/releases</url>
        <uniqueVersion>false</uniqueVersion>
    </repository>
    <snapshotRepository>
        <id>maven-config-processor-plugin-repo-releases</id>
        <name>Maven Repository for Config Processor Plugin (snapshots)</name>
        <url>svn:https://maven-config-processor-plugin.googlecode.com/svn/maven-repo/snapshots</url>
        <uniqueVersion>false</uniqueVersion>
    </snapshotRepository>
</distributionManagement>

Ответ 3

Проверьте, поддерживает ли репозиторий Maven плагин maven deploy. Это был бы самый простой подход.

Большинство репозиториев использует ssh как транспорт. Подробнее см. .

После настройки все, что вам нужно сделать, это:

  mvn deploy:deploy

Ответ 4

Вы можете отправить свою банку https://clojars.org/

В pom.xml:

<repositories>
  <repository>
    <id>clojars.org</id>
    <url>http://clojars.org/repo</url>
  </repository>
</repositories>