Существует множество туториалов, в которых показано, как справиться с зависимостями проекта OSGi и как их преобразовать в бандл. После более чем однодневного исследования я так и не нашел, как бороться с зависимостями с областью действия provided
.
Позвольте мне привести пример. В настоящее время я использую Dropbox
(dropbox-core-sdk 3.0), и у него есть две зависимости (com.google.android
и javax.servlet
) с областью действия provided
. Когда я использую такие методы, как maven-bundle-plugin
или bnd
, загружаются только артефакты и их транзитивные зависимости. Однако мне также нужны предоставленные зависимости, чтобы иметь возможность импортировать мой проект в контейнер OSGi.
Я использую maven-bundle-plugin
, и мой pom.xml
выглядит так:
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId};singleton:=true</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Export-Package>*</Export-Package>
<Embed-Transitive>true</Embed-Transitive>
<Embed-Dependency>*</Embed-Dependency>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
даже если Embed-Dependency
говорит включить все, в банке находятся только зависимости + транзитивные зависимости. Тем не менее, я хочу, чтобы банки с предоставленной областью также находились в банке.
Есть ли способ загрузить зависимости с областью действия provided
. Если нет, то как поступить в этой ситуации?