如何使用Tycho构建与Felix兼容的OSGi捆绑包?

时间:2012-04-26 10:46:40

标签: osgi equinox apache-felix tycho

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

JRE提供了这个包,没有问题,它适用于两个框架。

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

Import-Package: javax.net

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

当我用Tycho构建时,我的问题就来了。 添加Import-Package时,Tycho构建失败:

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

简而言之:如果没有导入包,Felix就会失败,因为Tycho失败了。

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

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

我可以使用类似org.osgi.framework.system.packages.extra吗?

谢谢,弗兰克

1 个答案:

答案 0 :(得分:3)

如果使用提供此程序包的JDK指定Bundle-RequiredExecutionEnvironment标头,则tycho应该能够解析该程序包。

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

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