Я запускаю приложение с использованием среды 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]
Пожалуйста, помогите.