【发布时间】:2017-08-21 11:39:08
【问题描述】:
有很多教程,展示了如何处理 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 说包含所有内容,jar 中也只有依赖项 + 传递依赖项。但是,我希望提供的范围 jars 也在 jar 中。
有没有办法下载 provided 范围的依赖项。如果没有,这种情况如何处理?
【问题讨论】:
标签: maven osgi dependency-management bnd maven-bundle-plugin