我们已经将OSGi运行时(Equinox)嵌入到自定义客户端 - 服务器应用程序中以促进插件开发,并且到目前为止事情进展顺利.由于内置的清单编辑器,依赖关系管理和导出向导,我们一直在使用Eclipse来构建插件.使用Eclipse管理构建不是非常有利于通过Hudson进行持续集成.
我们有依赖于其他OSGi包的OSGi包.我真的很讨厌在自定义ANT构建中硬编码构建顺序.我们这样做是过去而且非常可怕.是否有任何构建工具可以轻松管理OSGi依赖项,如果不自动解决它们?是否有任何DECENT示例如何做到这一点?
澄清:
生成的构建脚本仅可通过Eclipse使用.它们需要手动运行Eclipse.我们还有一些Eclipse构建所不具备的标准目标,我不想修改生成的文件,因为我可以重新生成(我知道我可以做包含,但我想避免Eclipse gen文件全部一起)
这是我的项目布局:
/ -PluginA -PluginB -PluginC . . .
在使用Eclipse PDE时,每个插件都有一个Manifest,但没有build.xml,因为PDE为我做了这个.Hudson难以自动化gui驱动的流程.我想设置自己的build.xml来构建每个,但是存在依赖关系和构建顺序问题.这些问题由Manifest文件(描述OSGi导入)驱动.例如,PluginC依赖于PluginB,它依赖于PluginA.它们必须以正确的顺序构建.我意识到我可以手动控制构建顺序,我正在寻找一种工具来帮助自动化构建顺序依赖关系管理.
Maven2一路走来; 有一个名为m2eclipse的Eclipse插件来帮助管理它,完全解决依赖问题,然后解决一些问题.有一本免费的在线图书作为文档.
具体来看一下多模块项目,将许多组件捆绑在一起,让Maven解决构建顺序和依赖关系.
还有一章关于Eclipse集成.
那就是Eclipse和Maven,接下来你会为OSGi获得一些很酷的东西:
该阿帕奇菲利克斯BND Maven插件会自动生成你的清单或者至少是帮助你
在PAX OPS4J项目和他们的Maven插件可以在引导项目有很大的帮助,提供发射器等
从根本上说,Maven模块模型完全符合OSGi的捆绑模型.我们使用Maven已经使用Maven构建和管理多个产品已经超过3年了,而且非常棒.