Инструмент для управления / хостинга собственных репозиториев p2? - PullRequest
40 голосов
/ 03 декабря 2010

Наша компания использует Maven.Мы используем менеджер репозитория Nexus для хранения наших снимков и выпусков.

В настоящее время мы разрабатываем продукт на основе Eclipse.Для этого мы используем Tycho .

Проблема заключается в следующем: в нашем продукте на основе Eclipse у нас много функций.Наша идея - построить каждую функцию (или группу функций) отдельно и поместить их во внутренние репозитории p2.Когда для одной функции требуется другая функция, мы указываем целевой платформе необходимый внутренний репозиторий p2.

В настоящее время мы создаем приложение с Tycho.Мы делаем наши функции «развертываемыми», поэтому Tycho создает сайт P2 в target.Мы помещаем этот сайт P2 на наш сервер и затем запускаем Eclipse FeaturesAndBundlesPublisher, который объединяет недавно созданную функцию с хранилищем P2.В результате у нас есть внутренний репозиторий P2 со всеми версиями требуемой функции.

Мы считаем этот процесс слишком громоздким.Есть ли такой инструмент, как Nexus, который был бы более удобным?

UPD .: В списке пользователей Tycho

идет обсуждение

Ответы [ 2 ]

9 голосов
/ 13 ноября 2012

С помощью Unzip Repository Nexus Plugin вы можете использовать Nexus для обмена двоичными артефактами между сборками Tycho.

  • Проект Tycho A публикует свои артефакты, как обычный проект Maven: проект построен с mvn clean deploy, который загружает артефакты проекта в ваш репозиторий Maven на Nexus. Единственное специальное требование заключается в том, что проект создает репозиторий p2 . Рекомендуемый способ сделать это - модуль eclipse-repository, но «развертываемая функция» также должна работать в большинстве случаев.

  • На вашем Nexus вам нужна только одна единовременная конфигурация: для репозитория развертывания Maven (или «Группа репозитория», которая включает этот репозиторий) вам необходимо добавить виртуальный репозиторий типа «Unzip Repository» ». Этот виртуальный репозиторий показывает артефакты zip из репозитория deploy в распакованном виде.

    Пример. Если почтовый индекс репозитория p2 проекта A находится в репозитории развертывания Maven на http://nexus.corp/nexus/repositories/build.milestones/corp/example/project-a/project-a-repo/1.0.0/project-a-repo-1.0.0.zip, он будет доступен в стандартном формате репозитория p2 в репозитории Unzip на http://nexus.corp/nexus/repositories/build.milestones.unzip/corp/example/project-a/project-a-repo/1.0.0/project-a-repo-1.0.0.zip-unzip/.

  • Проект Tycho B может ссылаться на артефакты из проекта A, добавляя последний URL к его целевой платформе , например, в файле определения цели.

В вышеприведенном примере проект B ссылается на версию выпуска проекта A. Тот же подход также работает для моментальных снимков, поскольку репозиторий Unzip имеет поддержку «символических» версий , подобно 1.1.0-SNAPSHOT для последних развернул 1.1.0-SNAPSHOT или даже SNAPSHOT для полной версии. Используя эти символические версии, Project B может, например, в своей собственной сборке CI ссылаться на проект A результатов сборки CI, добавляя результирующие (стабильные!) URL-адреса хранилища p2 на своей целевой платформе.

Отказ от ответственности : Плагин Unxip Repository Nexus является частью проекта Tycho, участником которого я являюсь.

3 голосов
/ 30 декабря 2014

Возможно, это немного поздно, но в настоящее время я работаю над менеджером репозитория с открытым исходным кодом (EPL), который поддерживает рабочий процесс развертывания в репозиторий с помощью maven и tycho и использования его в качестве репозитория P2.* Также можно развернуть пакеты, созданные maven (не maven tycho), и метаданные P2 будут сгенерированы автоматически.

Проект называется "Package Drone" и размещен на github .Существует также короткое вступительное видео .

...