无法启动 bundle osgi.wiring.package=org.apache.commons.configuration version>=1.9.0 中未解决的约束!版本>=2.0.0

Could not start bundle Unresolved constraint in bundle osgi.wiring.package=org.apache.commons.configuration version>=1.9.0 ! version>=2.0.0

我正在尝试在 Karaf 上使用 feature:install 安装我的 apache camel 应用程序的最新版本 这个新版本依赖于 org.apache.commons.configuration ver 1.9 但出现以下错误

错误:

Error executing command: Could not start bundle mvn: in feature(s)<package> : Unresolved constraint in bundle <bundle> [414]: Unable to resolve 414.0: missing requirement [414.0] osgi.wiring.package; (&(osgi.wiring.package=org.apache.commons.configuration)(version>=1.9.0)(!(version>=2.0.0)))

我已将其包含在 pom.xml

<dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>1.9</version>
    </dependency>

也尝试了 sof 中建议的几种方法,但 none 有效

还将 for org.apache.commons.configuration 放在插件

        <plugins>
        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
                <instructions>
                    <Import-Package>
                        org.apache.cxf.service.model,
                        org.apache.cxf.message,
                        org.apache.commons.configuration,
                        *
                    </Import-Package>
                </instructions>
            </configuration>
        </plugin>

但是还是无法解决。谁能帮忙解决这个问题?

谢谢

您真的要从另一个已部署的包中导入它还是应该是一个简单的嵌入式依赖项?

由于您将其列在 Import-Package 下,因此您期望第一个。为此,您需要在导出 org.apache.commons.configuration.

的容器中部署另一个包

如果你想将它作为简单的依赖嵌入到同一个包中,你必须将它从 Import-Package 中排除,并使用 ! 作为前缀,并且可能像示例一样使用 Embed-Dependency 指令在这个答案中:

您需要确保jar 安装在Karaf 中。 为此,您需要将罐子打包成一个包:

osgi:install wrap:mvn:commons-configuration/commons-configuration/1.9

完成此操作后,请确保删除对 Import-Package 添加的内容,因为它不需要。

如果您希望依赖项与应用程序的 feature 一起安装,只需将以下元素添加到您的功能中:

<bundle>wrap:mvn:commons-configuration/commons-configuration/1.9</bundle>