OSGI: два пакета, использующие один и тот же импорт с разными версиями, создают конфликт использования пакета импорта

Я использую mvn pax: положение для тестирования моего приложения с помощью maven pluginmaven-pax-plugin

У меня есть два пакета с различным диапазоном версий одной и той же проблемы создания импорта

пример

У меня есть пакет A, который имеет импорт Google Guava с диапазоном 16,17, и у меня есть 2-й пакет X, который имеет импорт Google Guava с диапазоном 16,22, и A имеет импорт Google Guava, кроме того, Google Guava имеет два версии 1 и 3 активны на pax: предоставление

когда я вижу в консоли, это показывает, что пакет X активен с Google Guava версии 18, что делает пакет A в разрешенном состоянии с ошибкой

org.osgi.framework.BundleException: Пакет "A [28]" не может быть разрешен. Причина: конфликт использует пакет: Import-Package: X; версия ="[0.6.0,1.0.0)"

Подскажите, пожалуйста, как решить эту проблему. Я использовал начальный уровень, задав mvn:com.google.guava/guava/18.0@20, чтобы изменить начальный уровень guava 18, чтобы пакет X не обнаружил его активным при запуске и в конечном итоге с помощью guava 16, который решит мою проблему

Я не могу удалить другую версию guava из-за некоторых зависимостей и не могу изменить диапазон версий в обоих пакетах, потому что это делает другой пакет нестабильным

Я использую pax:runner в своем проекте Maven

artifactId maven-pax-plugin runner 1.9.0 skipTransitive True Framework равноденствие

0 ответов

Другие вопросы по тегам