如果我有一个OSGI Bundle,其嵌套在OSGI Bundle jar中,我是否需要在Import-Package清单中列出这些类,以便我可以使用它们?我想不会 .
另外,我如何将这些依赖关系jar添加到我的包中 . 我只是把它们放在根文件夹中吗?我是否需要向清单文件添加任何内容才能使用这些依赖项?
避免手动使用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添加到bundle类路径中 .
2 回答
避免手动使用Bundle-ClassPath . 您可以使用maven-bundle-plugin来解决和嵌入您的第三方依赖项,如下所示:
有关更多信息,请访问http://web.ist.utl.pt/ist162500/?p=110
您不应该将Import-Package用于嵌入式jar . 而是使用Bundle-ClassPath: . ,myjar.jar将嵌入的jar添加到bundle类路径中 .