2016-06-21 3 views
0

Моей сборки жалуется на недостающую зависимости:OSGi расслоения не найдено, несмотря на версию матча

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

Использованного точек целевой платформы на место P2, который включает в себя следующие JAR: 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 является допустимой версией, то как суффикс .v20140812-1751 понимается OSGi?

Четвертая часть - это только сегмент, как любой другой, за исключением того, что он сортируется буквенно-цифровым образом, а не просто как число. Конкретный алгоритм - String.compare(), поэтому вы должны прочитать стандартные JavaDocs для этого метода, чтобы получить полную информацию. Этот сегмент называется «классификатором»

В варианте 3.106.0.v20140812-1751 квалификатор v20140812-1751. В версии 3.106.0 классификатором является пустая строка. Поскольку JavaDocs для String.compare() подтвердит, любая непустая строка сортируется после пустой строки.

Смежные вопросы