安装功能时 org.apache.felix.gogo.commands 缺少要求

问题描述 投票:0回答:1

我正在使用 Karaf 4.2.16。我想安装一个功能:

karaf@mst-ica()> feature:install my_feature.config
并收到以下错误:

Unable to resolve root: 
    missing requirement [root] osgi.identity; 
    osgi.identity=my_feature.config; 
    type=karaf.feature; 
    version="[4.0.0.SNAPSHOT,4.0.0.SNAPSHOT]"; 
    filter:="(&(osgi.identity=my_feature.config)(type=karaf.feature)(version>=4.0.0.SNAPSHOT)(version<=4.0.0.SNAPSHOT))" 
    [
        caused by: Unable to resolve my_feature.config/4.0.0.SNAPSHOT: 
        missing requirement [my_feature.config/4.0.0.SNAPSHOT] osgi.identity; 
        osgi.identity=my_feature.commands; 
        type=osgi.bundle; 
        version="[4.0.0.SNAPSHOT,4.0.0.SNAPSHOT]"; 
        resolution:=mandatory 
        [
            caused by: Unable to resolve my_feature.commands/4.0.0.SNAPSHOT: 
                missing requirement [my_feature.commands/4.0.0.SNAPSHOT] osgi.wiring.package; 
                filter:="(&(osgi.wiring.package=org.apache.felix.gogo.commands)(version>=0.17.0)(!(version>=1.0.0)))"
        ]
    ]

我使用 Equinox 作为系统框架:

karaf@mst-ica()> system:framework
Current OSGi framework is equinox

但是,这对于 Karaf 2.2.0 来说不是问题,并且我尝试安装的功能工作正常。

如何才能使用 Felix gogo 命令?我需要先安装特定功能吗?

java osgi apache-karaf apache-felix
1个回答
0
投票

问题已解决。正如更新说明(从2.x到3.x)中提到的,org.apache.felix.gogo.commands被替换为org.apache.karaf.shell.commands。

在开发方面,以前由 org.apache.felix.gogo.commands* 包提供的 shell 注释(@Command、@Argument 等)现已弃用。 Apache Karaf 3.0.0 仍然支持这些注释,但我们鼓励用户升级到新包 org.apache.karaf.shell.commands。

我更改了我的 pom 文件和 Java 导入并重建了该功能。另外,我已经使用

karaf@mst-ica()> feature:install shell-compat
安装了 shell-compat。

完成所有这些后,我能够安装我的功能,没有错误。

© www.soinside.com 2019 - 2024. All rights reserved.