将包插入 osgi 失败

Insert bundle into osgi failed

亲爱的大家:

我写了一个示例插件,我想将这个包插入到我的控制器中。但是当我在 OSGI 中启动它时出现错误,它显示:

gogo: BundleException: The bundle "org.opendaylight.controller.ping.plugin_0.4.0.SNAPSHOT [98]" could not be resolved. Reason: Missing Constraint: Import-Package: org.opendaylight.controller.sal.binding.api; version="[1.1.0,2.0.0)"

参考这个 post page,我认为我有一个没有依赖项的更新版本的插件。

错误显示org.opendaylight.controller.sal.binding.api的最小版本号是1.1.0,而我的版本是1.0-1,我在controller/opendaylight/distribution/opendaylight/target/distribution.opendaylight-osgipackage/opendaylight/plugins的目录中查找。

我的问题是如何将版本从1.0-1切换到1.1,我可以在我的目录中找到sal.binding.api的1.1版本:~/.m2/repository/org/opendaylight/controller/sal-binding-api/1.1-SNAPSHOT.

当我查看我的 pom.xml 时,我发现我的依赖项是 1.1:

<dependency>
      <groupId>org.opendaylight.controller</groupId>
      <artifactId>sal-binding-api</artifactId>
      <version>1.1-SNAPSHOT</version>
    </dependency>

我觉得很奇怪

非常感谢任何人的回复!

此致,
文伦

插件版本应该是'major.minor.micro.build'的形式,其中'major'、'minor'和'micro'都是数字,'build'可以是任何东西。所以你应该有类似 1.1.0.SNAPSHOT 的东西。

我已经解决了这个问题:在pom.xml中将版本1.1更改为1.0-1。之后,如果还有其他问题,请将版本1.1更改为1.0-1,并使用不同的jar包继续。