如果我有一个OSGI Bundle,其嵌套在OSGI Bundle jar中,我是否需要在Import-Package清单中列出这些类,以便我可以使用它们?我想不会。
另外,如何将这些依赖关系jar添加到我的包中。我只是把它们放在根文件夹中吗?我是否需要向清单文件添加任何内容才能使用这些依赖项?
答案 0 :(得分:1)
您不应将Import-Package用于嵌入式jar。而是使用Bundle-ClassPath:。,myjar.jar将嵌入的jar添加到bundle类路径中。
答案 1 :(得分:1)
避免手动使用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