embed - 在 OSGi 包中嵌入 jar 时,忽略还是可选解析?

标签 embed osgi bundle

当我构建一个包时,我需要在我的例子中嵌入几个 jars(http-core 和 http-client)。使用带有 flex 插件的 maven 我得到了巨大的导入列表 - 一些我不需要的东西。到目前为止,我只是在否定我在 <Import-Package> 中不需要的包。 ,但我也可以使用 Import-Package: resolution:=optional .我想知道什么是首选方式以及两种方法的优点/缺点是什么?

最佳答案

不幸的是,人们包含了许多导致这些导入的“很好的部件”(通常称为实用程序)。罪魁祸首通常与您要使用的核心代码分开。如果您使用 bndtools,那么您可以轻松检查依赖项的运行方式。

在 bndtools 和 maven 中,您使用 bnd,并且 bnd 可以很容易地将 JAR 的一部分复制到您的包中。这样您就可以最小化依赖项。只需使用 Private-Package 复制您真正需要的包,然后查看导入。如果您导入了您认为需要的内容,请将其添加到 Private-Package(在 bndtools 中,您可以通过拖放来执行此操作)。

最后,您可能可以摆脱许多不必要的导入。但是,通常会留下一些。在这种情况下,在 Import-Package 语句中用 resolution:=optional 装饰它们:

Import-Package: com.oracle.whatever; resolution:=optional, *

不要忘记末尾的 *。

关于embed - 在 OSGi 包中嵌入 jar 时,忽略还是可选解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10339920/

相关文章:

wordpress - 嵌入式 Tableau 图表在 WordPress 博客中无法正常工作?

java - 我们可以在 Eclipse 3.7.2 的 Equinox 插件中使用 java 8 功能吗?

javascript - 如何将 span 包裹在一段 HTML 中?

json - 使用discord.py 将已存在的 json 文件作为嵌入发送

gradle - 使用Gradle将包装的OSGi bundle 发布到 Artifactory

ios - 使用包标识符从内部打开应用程序

android - 是否需要覆盖 onSaveInstanceState 来保存私有(private)字段?

wix - 修复 WiX bundle 时如何防止 .NET 进行修复?

javascript - 迭代抓取的数据以作为嵌入内的字段对象返回

java - 在 Java 中访问包的多个版本