osgi - 如何使用 Tycho 构建与 Felix 兼容的 OSGi 包?

标签 osgi equinox apache-felix tycho

我正在尝试构建用于 Equinox 和 Felix 的 OSGi 包。
我的一些包使用 javax.* 包,例如 javax.net。

JRE 提供了那个包,没问题,它可以在两个框架中使用。

Felix 要求我在 MANIFEST.MF 中导入该包:

Import-Package: javax.net

这是有道理的,因为只有 java.* 包应该被隐式包含。
出于某种原因,Equinox 无论如何都很好,它似乎无论如何都能神奇地找到它们。

当我用 Tycho 构建时,我的问题就出现了。
添加导入包时,第谷构建失败:

Resolution errors:
   Bundle com.dexels.mybundle - Missing Constraint: Import-Package: javax.net; version="0.0.0"


所以简而言之:如果没有导入包,Felix 会失败,第谷也会失败。

我知道这个 kind of workaround使用系统包片段,但真的希望我不需要诉诸于此。

有没有办法将这些包添加到第谷?

我可以使用像 org.osgi.framework.system.packages.extra 这样的东西吗?

谢谢,弗兰克

最佳答案

如果您使用提供此包的 JDK 指定 Bundle-RequiredExecutionEnvironment header ,tycho 应该能够解析该包。

你可能会遇到 https://bugs.eclipse.org/bugs/show_bug.cgi?id=371565

如果是这样,您将需要 tycho 0.15.0,请参阅 http://wiki.eclipse.org/Tycho/Release_Notes/0.15

关于osgi - 如何使用 Tycho 构建与 Felix 兼容的 OSGi 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10331851/

相关文章:

java - 如何避免 bnd 从 Bundle-ClassPath 创建 Private-Package 条目?

java - 如何在 Apache Felix 中验证服务注册

osgi - 需要一个 osgi web 示例的示例

java - OSGi环境: how to update during runtime a class reference

java - 在我的树莓派中安装 rxtx 包

java - 创建需要用户参数的 OSGI 服务

Linux |重庆5.6 |类加载器问题

java - 如何通过名称获取 OSGi 包的安装目录(绝对路径)?

java - 构建一个可以在 OSGI 和非 OSGI 环境中工作的库的好方法是什么?

java - 在 OSGI 应用程序 Mac OS X - Java 1.7 中引用时 ImageIO 挂起