有很多教程,展示了如何处理 OSGi 项目的依赖关系以及如何将它们转换为捆绑包。经过一天多的研究,我仍然没有找到如何处理具有provided
范围的依赖关系。
让我举个例子。我目前正在使用Dropbox
(dropbox-core-sdk 3.0),它有两个依赖项 ( com.google.android
and javax.servlet
) 和provided
范围。当我使用maven-bundle-plugin
or等技术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
说包含所有内容,jar 中也只有依赖项 + 传递依赖项。但是,我希望提供的范围内的 jar 也在 jar 中。
有没有办法下载provided
范围的依赖项。如果没有,如何处理这种情况?