无法将Antlr4作为依赖包含在OSGI包中

时间:2017-09-18 18:08:39

标签: java osgi

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

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

但是当我在<Private-Package>中包含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)(版本&GT; = 4.7.0)((版本&GT;!= 5.0.0)))   未解决的要求:[[mycom.myProject.BundleFile [241](R   241.76)] osgi.wiring.package; (&amp;(osgi.wiring.package = org.antlr.v4.runtime)(版本&gt; = 4.7.0)(!(版本&gt; = 5.0.0)))))

我该如何解决?

1 个答案:

答案 0 :(得分:0)

如果我正确读取了您的日志,OSGI需要一个antlr版本&gt; = 4.7.0。但是只有4.7版本。

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

version="4.7",

此外,版本末尾和&#34;之间还有空格。也许试试

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

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