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

Инструмент для управления/размещения собственных репозиториев p2?

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

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

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

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

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

UPD. Существует обсуждение в списке пользователей Tycho

4b9b3361

Ответ 1

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

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

  • В вашем Nexus вам нужна только следующая разовая конфигурация. Для развертывания репозитория Maven (или "группы репозитория", который включает этот репозиторий), вам нужно добавить виртуальный репозиторий типа "Unzip Repository". Этот виртуальный репозиторий показывает артефакты zip из репозитория развертывания в распакованной форме.

    Пример. Если zip проекта 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 есть поддержка "symbolic" версии, например 1.1.0-SNAPSHOT для последней развернутой версии 1.1.0-SNAPSHOT или даже просто SNAPSHOT для самой высокой версии. Используя эти символические версии, Project B может затем, например, в своей собственной сборке CI, ссылаться на проект A результатов сборки CI, добавив в целевую платформу результирующие (стабильные!) P2-репозитории.

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

Ответ 2

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

Также возможно развернуть пакеты, созданные maven (а не maven tycho), и метаданные P2 будут сгенерированы автоматически.

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