尽管版本匹配,但未找到 OSGi 包
OSGi bundle not found despite version match
我的构建抱怨缺少依赖项:
... 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
仍然构建失败并引发以下两个问题:
- 我以为
3.106.0.v20140812-1751
会在 [3.106.0,4.0.0)
范围内,这不是真的吗?
- OSGi 如何处理版本的第四部分?如果
3.106.0
是有效版本,那么 OSGi 如何理解后缀 .v20140812-1751
?
link 对 OSGi 版本控制的良好解释也将不胜感激。
I thought 3.106.0.v20140812-1751 would be in the range [3.106.0,4.0.0), is that not true?
是的,这是真的。
How does OSGi handle the fourth part of a version? If 3.106.0 is a valid version, then how is the suffix .v20140812-1751 understood by OSGi?
第四部分与其他部分一样只是一个片段,只是它是按字母数字排序而不是纯粹按数字排序。具体算法是 String.compare()
,因此您应该阅读该方法的标准 JavaDocs 以获得完整的详细信息。此段称为 "qualifier"
在版本 3.106.0.v20140812-1751
中,限定符是 v20140812-1751
。在版本 3.106.0
中,限定符是空字符串。 String.compare()
的 JavaDocs 将确认,任何非空字符串都排在空字符串之后。
我的构建抱怨缺少依赖项:
... 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
仍然构建失败并引发以下两个问题:
- 我以为
3.106.0.v20140812-1751
会在[3.106.0,4.0.0)
范围内,这不是真的吗? - OSGi 如何处理版本的第四部分?如果
3.106.0
是有效版本,那么 OSGi 如何理解后缀.v20140812-1751
?
link 对 OSGi 版本控制的良好解释也将不胜感激。
I thought 3.106.0.v20140812-1751 would be in the range [3.106.0,4.0.0), is that not true?
是的,这是真的。
How does OSGi handle the fourth part of a version? If 3.106.0 is a valid version, then how is the suffix .v20140812-1751 understood by OSGi?
第四部分与其他部分一样只是一个片段,只是它是按字母数字排序而不是纯粹按数字排序。具体算法是 String.compare()
,因此您应该阅读该方法的标准 JavaDocs 以获得完整的详细信息。此段称为 "qualifier"
在版本 3.106.0.v20140812-1751
中,限定符是 v20140812-1751
。在版本 3.106.0
中,限定符是空字符串。 String.compare()
的 JavaDocs 将确认,任何非空字符串都排在空字符串之后。