Зареждането на пакет във felix е неуспешно поради зависимост от себе си

Тук явно съм идиот, но не виждам проблема:

Опитвам се да заредя пакет в Karaf 4 M3 и получавам следната грешка

org.osgi.framework.BundleException: Unable to resolve package-core [50](R 50.0): missing requirement [package-core [50](R 50.0)] osgi.wiring.package; (osgi.wiring.package=bi.package.internal) Unresolved requirements: [[package-core [50](R 50.0)] osgi.wiring.package; (osgi.wiring.package=bi.package.internal)]

Моят манифест е генериран от Maven и изглежда така:

Manifest-Version: 1.0
Export-Package: bi.package.core.repository;uses:="bi.package.core.repository.objects";version="4.0.0.SNAPSHOT",bi.package.core.repository.objects;version="4.0.0.SNAPSHOT"
Private-Package: bi.package.internal.*
Built-By: bugg
Tool: Bnd-0.0.255
Bundle-Name: package-core
Created-By: Apache Maven Bundle Plugin
Build-Jdk: 1.7.0_65
Bundle-Version: 4.0.0.SNAPSHOT
Bnd-LastModified: 1435161944129
Bundle-ManifestVersion: 2
Bundle-Activator: bi.package.internal.ExampleActivator
Import-Package: bi.package.core.repository;version="4.0.0.SNAPSHOT",bi.package.core.repository.objects;version="4.0.0.SNAPSHOT",bi.meteorite.internal
Bundle-SymbolicName: package-core

Така че изглежда, че се проваля, защото зависи от себе си? Очевидно това не е наред, така че къде съм объркал?


person magicaltrout    schedule 24.06.2015    source източник


Отговори (1)


Вашият проблем е този:

Import-Package: ... bi.meteorite.internal

импортирате пакет, който не е експортиран и всъщност сте декларирали като частен:

Private-Package: bi.package.internal.*

Освен ако наистина не е необходимо, обикновено е най-добре да не импортирате вашите експортирани пакети. Това е полезно само ако експортирате вградена зависимост, която може да бъде заменена с по-нова версия като самостоятелна.

person Achim Nierbeck    schedule 25.06.2015
comment
интересно Благодаря, Ахим, прочетох малко, което каза, че е добър дизайн да импортирате отново вашите собствени експортирани пакети, може би съм го прочел погрешно и линията за импортиране се генерира от maven, така че бог знае защо импортира частен пакет. ще погледна! - person magicaltrout; 25.06.2015