Анализ зависимостей плагинов Eclipse в автоматическом режиме - PullRequest
0 голосов
/ 04 июня 2018

Я в процессе создания репозитория maven для модуля JAVA, который является частью Eclipse (вероятно, OSGI).Я пытаюсь получить транзитивные зависимости файлов JAR, которые мне нужны, используя этот способ (http://wiki.eclipse.org/JFace).

Он использует функцию анализатора зависимостей Plugin Eclipse для создания дерева. Мне интересно, как это работает в фоновом режиме.Я могу найти Импортированное пространство имен в файле манифеста JAR, но как он находит соответствующий файл JAR, используя эту информацию?

Моя конечная цель - экспортировать все эти транзитивные JAR-зависимости и преобразовать их в репозиторий maven.в идеале, я хочу автоматизировать его, чтобы мне не приходилось делать это вручную при наличии обновлений.

1 Ответ

0 голосов
/ 05 июня 2018

Как правило, проекты Eclipse PDE имеют платформу target .Эта целевая платформа содержит зависимости.

В комплектах OSGi зависимости указываются в манифесте.Существует много типов зависимостей, модель зависимости OSGi на порядок мощнее, чем упрощенная модель 'require' других модульных систем.Он не только имеет много типов зависимостей (требуется комплектация (классическая), пакет импорта, требуется среда выполнения, требуется реализация для API, требуется служба и т. Д.), Указанных в пространствах имен , но такжеподдерживает мощный фильтр, который утверждается в свойствах способность .Возможность противоположна требованию.

Для удовлетворения этих возможностей и требований в OSGi есть resolver .Он принимает набор начальных требований и находит решение, при котором все требования выполняются и все правила соблюдаются.Результатом распознавателя является набор проводов , которые соединяют пучки вместе.

На сегодняшний день лучшая среда для игры с этим - bndtools.В bndtools вы можете напрямую использовать репозиторий P2 (обычно целевой платформой является репозиторий P2).(Вы также можете напрямую использовать репозиторий Maven или стандартизированный OSGi-репозиторий, также известный как OBR.) В файле bndtools bndtools вы можете выбрать один или несколько корневых пакетов вашего графа.Затем распознаватель вычисляет набор пакетов, которые являются счастливыми замыканиями.Все это делается на уровне графического интерфейса.

Существует также командная строка с именем 'bnd', которую вы можете установить через brew или загрузить ее jar из https://bndtools.ci.cloudbees.com/job/bnd.master/lastSuccessfulBuild/artifact/biz.aQute.bnd/generated/

Это маленький чудесный инструментэто может творить чудеса, но очень плохо документировано, хотя у него есть команда помощи.:-( (я автор)

...