barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

воскресенье, 6 сентября 2015 г.

maven-bundle-plugin и включение в bundle классов, которые не экспортируются и не используются явно экспортируемыми классами

Проблема

Есть maven-проект, использующий maven-bundle-plugin для сборки OSGI-бандла. В этом проекте есть некий класс. Он не принадлежит экспортируемым из бандла пакетам, и явно не используется никаким экспортируемыми из бандла классами. В таком случае maven-bundle-plugin решает, что класс в бандле не нужен, и не включает его в бандл. Задача - включить класс в бандл.

Решение

Для этого пакет класса необходимо включить в Private-Package-блок конфигурации плагина:
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>1.4.0</version>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Bundle-SymbolicName>***</Bundle-SymbolicName>
            <Bundle-Name>***</Bundle-Name>
            <Export-Package>some.public.package</Export-Package>
            <Fragment-Host>***</Fragment-Host>
            <Import-Package>org.apache.ws.security.message,org.apache.axis2.saaj,*; resolution:=optional</Import-Package>
            <Private-Package>some.private.package</Private-Package>          </instructions>        
        </configuration>
      </plugin>

Комментариев нет:

Отправить комментарий