2013-12-09 3 views
0

В пакетах OSGi пакеты экспортируются и импортируются с номером версии. Все пакеты имеют определенную версию. Это кажется лишним для меня.Какова связь между версией пакета и пакета в OSGi

В чем смысл управления версиями как пакета, так и пакетов, содержащихся в нем? Я понимаю, что пулы/банки могут быть версиями для использования в системах, отличных от OSGi (например, для maven). Есть ли другая причина для этого?

Я немного смущен об этих двух уровнях управления версиями. Являются ли эти два номера версий зависимыми или независимыми от версий пакета, которые они содержат? В зависимости от того, каковы правила для версии пакета?

ответ

3

В OSGi пакеты определяют контракты, которые используются для объединения пакетов. Связки - это JAR, которые содержат код.

  • Целью версии пакета является убедиться, что пакеты связаны только с контрактами зависимости/использования, с которыми они совместимы. Пакеты используют семантическое управление версиями, чтобы сигнализировать о незначительных, микро и основных изменениях. Пакет может экспортировать и импортировать любое количество пакетов, а также предоставлять и потреблять любое количество контрактов.
  • Целью версии пакета является наличие уникального идентификатора для каждого JAR, поэтому его можно обрабатывать в течение жизненного цикла разработки. Код SHA также будет работать, но будет менее удобным. Некоторые организации используют версию пакета, основанную на самом высоком изменении в любом из своих пакетов. То есть если содержащиеся в нем пакеты были внесены незначительные изменения, пакет будет подвергнут незначительному изменению. Если в одном пакете произошли серьезные изменения, пакет был бы помят майором.
Смежные вопросы