我有一个 OSGi 捆绑项目的问题,如下所示:
我有需要使用 JDOM 的类。当我将 JDOM 作为单独的包部署时,我目前的项目运行良好。该捆绑包导出以下包:
org.jdom,version=1.0.0
org.jdom.adapters,version=1.0.0
org.jdom.filter,version=1.0.0
org.jdom.input,version=1.0.0
org.jdom.output,version=1.0.0
org.jdom.transform,version=1.0.0
org.jdom.xpath,version=1.0.0
现在我想更改项目,以便将 JDOM 作为嵌入依赖项包含在内。为此,我将依赖项添加到我的 pom 文件中,并在 maven-bundle-plugin 配置中设置以下内容:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>com.qnx.aem.cloudsite-bundle</Bundle-SymbolicName>
<Embed-Transitive>true</Embed-Transitive>
<Embed-Dependency>jdom</Embed-Dependency>
</instructions>
</configuration>
</plugin>
在此之后,当我查看我们的项目捆绑清单时,我看到一堆新的导入包需要 JDOM jar 的依赖项:jaxen、xerces 等。
先前部署的 JDOM 的 OSGi 包究竟是如何解决这些相同的依赖关系的?它们从未在包导入包中列出?此外,如果我尝试将这些作为项目的依赖项包含在内并嵌入它们只会使问题更加复杂。帮助!