我正在使用 Bndtools 进行一些开发。Bndtools 为 Apache Felix 和(显然)为 Equinox 提供开箱即用的 OSGi 运行时。
但是,假设您想开发包并在 Knopflerfish 的 Bndtools 中对其进行测试?或者对于某些公司的专有容器(是的,它们确实存在,令人惊讶的是!)?Bndtools 可以很容易地将单个包添加到开发环境中,但似乎没有任何明显的方法可以添加完整的运行时进行测试。
有什么方法可以将备用 OSGi 运行时环境添加到 Bndtools?
我正在使用 Bndtools 进行一些开发。Bndtools 为 Apache Felix 和(显然)为 Equinox 提供开箱即用的 OSGi 运行时。
但是,假设您想开发包并在 Knopflerfish 的 Bndtools 中对其进行测试?或者对于某些公司的专有容器(是的,它们确实存在,令人惊讶的是!)?Bndtools 可以很容易地将单个包添加到开发环境中,但似乎没有任何明显的方法可以添加完整的运行时进行测试。
有什么方法可以将备用 OSGi 运行时环境添加到 Bndtools?
只需获取框架 JAR 并将其拖放到您的存储库之一,例如本地存储库。然后它将出现在运行编辑器的 OSGi 框架下拉列表中。
注意,您可能必须关闭并重新打开编辑器才能刷新下拉内容。
bnd(tools) 的想法是在bndrun
文件中定义您的运行时。您可以根据bndrun
需要创建任意数量的文件。bndrun 文件包含环境设置(框架、系统包、属性等)和捆绑包列表。框架和捆绑包来自存储库。正如 Neil 所指出的,您可以通过将不同的框架添加到存储库来添加它们。
您可以将文件包含-include
在 bndrun 文件中,以便在不同 bndrun 文件之间共享变量。然后最好使用解析器来创建-runbundles
.
在 OSGi enRoute 中,我们以这种方式为实际应用程序和调试环境创建不同的运行时。查看OSGi enRoute cm 示例,查看debug.bndrun
andosgi.enroute.exampes.cm.bndrun
文件。请注意,该debug.bndrun
文件包含该osgi.enroute.exampes.cm.bndrun
文件,因此任何设置都会自动继承。还要注意合并属性的使用,它允许您添加属性而无需踩到包含文件的脚趾。