Создание пакета плагинов OSGI (с транзитивными зависимостями) с использованием Maven на Eclipse - PullRequest
0 голосов
/ 08 февраля 2019

Я запускаю приложение с использованием среды OSGI и запускаю конфигурацию на eclipse. Я разрабатываю плагин для добавления в основное приложение.Тем не менее, пакет плагинов имеет множество транзитивных зависимостей, некоторые из которых являются OSGI-пакетами, а некоторые нет.Однако похоже, что платформа OSGI ожидает, что все зависимости будут связками OSGI.Преобразование всех транзитивных зависимостей сторонних производителей в пакеты OSGI является огромной болью.Я пытался встроить все транзитивно зависимые jar-файлы в один пакет OSGI для плагина, используя maven-shade-plugin, но он просто не работает.Загрузчик пакетов OSGI продолжает поиск пакетов OSGI во время загрузки транзитивных зависимостей.

Я вижу, что swrlapi.jar внедряется в пакет плагинов, когда происходит процесс затенения.[INFO] Including edu.stanford.swrl:swrl-api.2.0.6.jar в затененной банке

Однако, когда я запускаю приложение и переключаюсь на вкладку, которая вызывает код плагина;Я получаю следующую ошибку, используемую:

java.lang.ClassNotFoundException: org.swrlapi.factory.SWRLAPIFactory cannot be found by HTA-Basic_1.0.0.SNAPSHOT
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:511) ~[na:na]
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:422) ~[na:na]
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:414) ~[na:na]
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:153) ~[na:na]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_181]

Пожалуйста, помогите.

...