我正在尝试构建用于 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/