Я создаю пакет OSGI из модуля Maven с использованием плагина maven-bundle-plugin.
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<Import-Package>
*
</Import-Package>
<Export-Package>
my.bundle.packages
</Export-Package>
</instructions>
</configuration>
</plugin>
К сожалению, существует зависимость, которая предоставляет javax.annotation. Из-за этого сгенерированный манифест содержит Import-Package: javax.annotation;version="[3.2,4)"
Как узнать, какая зависимость экспортирует этот пакет? Используя mvn dependency:list
, я смог исключить несколько зависимостей (com.google.code.findbugs:annotations и com.google.code.findbugs:jsr305), но диапазон версий остался. Я искал в файлах манифеста прямые зависимости, но не нашел другого файла jar, экспортирующего javax.annotation.
Примечание. Я мог бы добавить зависимость к javax.annotation:com.springsource.javax.annotation, и манифест правильно импортировал бы javax.annotation версии 1.0.0, но в этом нет необходимости, и лично мне было бы чище исключить неизвестная зависимость.