2016-06-21 79 views
0

我的生成报告缺少依赖:OSGi包没有发现,尽管版本匹配

... requires bundle org.eclipse.ui [3.106.0,4.0.0)' but it could not be found 

所使用的目标平台指向包括以下JAR一个P2的位置:org.eclipse.ui_3.106.0.v20140812-1751.jar

仍然是构建失败,提出以下两个问题:

  1. 我以为3.106.0.v20140812-1751将在[3.106.0,4.0.0)范围内,这是不是真的?
  2. OSGi如何处理版本的第四部分?如果3.106.0是有效的版本,那么后缀.v20140812-1751如何被OSGi理解?

OSGi版本的一个很好的解释的链接也将受到高度赞赏。

+0

版本控制的好链接:http://www.aqute.biz/Bnd/Versioning。请注意,您应该查看MANIFEST.MF以检测捆绑软件版本,而不是捆绑软件名称。 –

回答

1

我以为3.106.0.v20140812-1751会在[3.106.0,4.0.0)范围内,这是不是真的?

是的,这是真的。

OSGi如何处理版本的第四部分?如果3.106.0是有效的版本,那么OSGi可以理解后缀.v20140812-1751?

第四部分只是一个像其他任何部分一样,除了它是按字母顺序排序而不是纯粹的数字。具体算法是String.compare(),所以您应该阅读该方法的标准JavaDocs以获取完整的详细信息。此段称为“限定符”

在版本3.106.0.v20140812-1751中,限定符为v20140812-1751。在版本3.106.0中,限定符是空字符串。正如String.compare()的JavaDocs所证实的那样,任何非空字符串在空字符串之后排序。

相关问题