【问题标题】:Unable to include Antlr4 as dependency in OSGI bundle无法将 Antlr4 作为依赖项包含在 OSGI 包中
【发布时间】:2018-02-27 08:47:08
【问题描述】:

我将以下依赖项添加到我的 OSGI 包中:

<dependency>
    <groupId>org.antlr</groupId>
    <artifactId>antlr4</artifactId>
    <version>4.7</version>
</dependency>

但是当我在 &lt;Private-Package&gt; 中包含 mycom.myProject.Antlr.* 时出现以下错误:

错误:捆绑 mycom.myProject.BundleFile [241] 启动错误 文件:/C:/username/apache-servicemix-7.0.0.M2/deploy/BundleFile-1.0.0.jar (org.osgi.framework.BundleException:无法解决 mycom.myProject.BundleFile [241](R 241.76):缺少要求 [mycom.myProject.BundleFile [241](R 241.76)] osgi.wiring.package; (&(osgi.wiring.package=org.antlr.v4.runtime)(version>=4.7.0)(!(version>=5.0.0))) 未解决的要求:[[mycom.myProject.BundleFile [241](R 241.76)] osgi.wiring.package; (&(osgi.wiring.package=org.antlr.v4.runtime)(version>=4.7.0)(!(version >=5.0.0)))])

我该如何解决?

【问题讨论】:

  • 你能分享你的 manifest.mf 文件吗?
  • Bundle-Name: MyProject::BundleFile Bundle-SymbolicName: mycom.MyProject.BundleFile Bundle-Version: 1.0.0 BundleType: MyProject Created-By: Apache Maven Bundle Plugin Import-Package: android.util,javax.jms;version="[1.1,2)",javax.net,javax .net.ssl,javax.security.auth.x500,org.antlr.v4.runtime;version="[4.7,5) ",org.antlr.v4.runtime.atn;version="[4.7,5)",org.antlr.v4.runtime.dfa;v ersion="[4.7,5)",org.antlr.v4.runtime.tree;version="[4.7,5)",org.apache .activemq;version="[5.7,6)",org.apache.camel.osgi,org.osgi.framework;ve rsion="[1.8,2)" Tool: Bnd-1.50.0

标签: java osgi


【解决方案1】:

如果我没看错你的日志,OSGI 想要一个 antlr 版本 >= 4.7.0。但是只有4.7版本。

尝试将 manifest.mf 中的所有版本条目更改为 antlr 类似:

version="4.7",

另外,版本结尾和“.”之间有空格。也许试试

org.antlr.v4.runtime;versi‌​on="[4.7,5)" 而不是

org.antlr.v4.runtime;versi‌​on="[4.7,5) "

【讨论】:

  • antlr 4 丢失,因为我没有在我的项目中提供它?如何在我自己的包中包含 antlr4?
  • mycom.myProject.myBundle.Manager.*,org.antlr.*
猜你喜欢
  • 2017-03-05
  • 2020-01-27
  • 2020-02-03
  • 2015-10-04
  • 2016-12-11
  • 2018-08-03
  • 2014-03-12
  • 2016-01-24
  • 2019-06-26
相关资源
最近更新 更多