【发布时间】:2026-02-09 04:15:01
【问题描述】:
如果我有一个 OSGI Bundle,它的依赖 jar 嵌套在 OSGI Bundle jar 中,我是否需要在 Import-Package 清单中列出这些类以便我可以使用它们?我认为不会。
另外,我如何将这些依赖 jar 添加到我的包中。我只是将它们放在根文件夹中吗?我是否需要在清单文件中添加任何内容才能使用这些依赖项?
【问题讨论】:
标签: osgi
如果我有一个 OSGI Bundle,它的依赖 jar 嵌套在 OSGI Bundle jar 中,我是否需要在 Import-Package 清单中列出这些类以便我可以使用它们?我认为不会。
另外,我如何将这些依赖 jar 添加到我的包中。我只是将它们放在根文件夹中吗?我是否需要在清单文件中添加任何内容才能使用这些依赖项?
【问题讨论】:
标签: osgi
避免手动使用 Bundle-ClassPath。您可以使用 maven-bundle-plugin 来解决和嵌入您的第三方依赖项,如下所示:
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.5.3</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId};singleton:=true</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Export-Package>lumina.extensions.drivers.luminadb</Export-Package>
<Bundle-Activator>lumina.extensions.drivers.luminadb.internal.Activator</Bundle-Activator>
<Embed-Dependency> YOUR ARTIFACT ID HERE </Embed-Dependency>
</instructions>
</configuration>
</plugin>
(...)
</plugins>
欲了解更多信息,请访问http://web.ist.utl.pt/ist162500/?p=110
【讨论】:
您不应将 Import-Package 用于嵌入式 jar。而是使用 Bundle-ClassPath: .,myjar.jar 将嵌入的 jar 添加到包类路径中。
【讨论】: