Экспортный пакет OSGI - PullRequest
0 голосов
/ 14 мая 2019

Мне нужно импортировать пакет A для моих проектов. Однако импорт не может быть решен. Поэтому я посмотрел файл экспортного пакета из нужного мне пакета.

Я использую Equinox, Spring и Maven. Весь следующий код находится внутри файла pom.xml.

// E.D.C.B.A

!E.D.C.B.F*
!E.D.C.B.G*
!E.D.C.B.Z*
E.D.C.B*,
!*

Этот вопрос можно сузить до двух простых вопросов.

  1. Включает ли E.D.C.B* E.D.C.B?
  2. что означает !*? Означает ли это, что не экспортируются никакие пакеты или не экспортируются никакие пакеты, если они указаны?

Насколько я понимаю, приведенный выше код означает, что экспорт не ожидается, так как он указан. Все пакеты в E.D.C.B* (например, E.D.C.B и E.D.C.Bbdfd) разрешены, кроме пакетов в E.D.C.B.F*, E.D.C.B.G* и E.D.C.B.G*.

1 Ответ

3 голосов
/ 15 мая 2019

Отвечая на ваши вопросы:

Я предполагаю, что вы говорите об инструкции Export-Package от Apache Felix maven-bundle-plugin. Если это не правильно, пожалуйста, уточните.

  1. Да, E.D.C.B* будет экспортировать пакет E.D.C.B и подпакеты.
  2. !* обычно не требуется, если вы уже указали пакеты, которые вы собираетесь экспортировать ранее, но обычно означает: not (any package)

В этом случае ваше окончательное понимание верно.

Также обратите внимание, что инструкции обрабатываются по порядку, так что указанные исключения или включения сначала имеют приоритет над следующими объявлениями, поэтому !* фактически не имеет никакого смысла.

...