如何管理OSGi构建依赖项?

bas*_*ero 11 dependencies osgi build

我们已经将OSGi运行时(Equinox)嵌入到自定义客户端 - 服务器应用程序中以促进插件开发,并且到目前为止事情进展顺利.由于内置的​​清单编辑器,依赖关系管理和导出向导,我们一直在使用Eclipse来构建插件.使用Eclipse管理构建不是非常有利于通过Hudson进行持续集成.

我们有依赖于其他OSGi包的OSGi包.我真的很讨厌在自定义ANT构建中硬编码构建顺序.我们这样做是过去而且非常可怕.是否有任何构建工具可以轻松管理OSGi依赖项,如果不自动解决它们?是否有任何DECENT示例如何做到这一点?

澄清:

生成的构建脚本仅可通过Eclipse使用.它们需要手动运行Eclipse.我们还有一些Eclipse构建所不具备的标准目标,我不想修改生成的文件,因为我可以重新生成(我知道我可以做包含,但我想避免Eclipse gen文件全部一起)

这是我的项目布局:

/
-PluginA
-PluginB
-PluginC
.
.
.
Run Code Online (Sandbox Code Playgroud)

在使用Eclipse PDE时,每个插件都有一个Manifest,但没有build.xml,因为PDE为我做了这个.Hudson难以自动化gui驱动的流程.我想设置自己的build.xml来构建每个,但是存在依赖关系和构建顺序问题.这些问题由Manifest文件(描述OSGi导入)驱动.例如,PluginC依赖于PluginB,它依赖于PluginA.它们必须以正确的顺序构建.我意识到我可以手动控制构建顺序,我正在寻找一种工具来帮助自动化构建顺序依赖关系管理.

Bor*_*zic 7

Maven2一路走来; 有一个名为m2eclipse的Eclipse插件来帮助管理它,完全解决依赖问题,然后解决一些问题.有一本免费的在线图书作为文档.

具体来看一下多模块项目,将许多组件捆绑在一起,让Maven解决构建顺序和依赖关系.

还有一章关于Eclipse集成.

那就是Eclipse和Maven,接下来你会为OSGi获得一些很酷的东西:

从根本上说,Maven模块模型完全符合OSGi的捆绑模型.我们使用Maven已经使用Maven构建和管理多个产品已经超过3年了,而且非常棒.


bas*_*ero 1

结束一些老问题...

由于缺乏网络连接和时间安排,我们的设置不利于 Maven。我知道有离线 Maven 设置,但考虑到时间太多了。希望当我们有时间重新组织构建过程时,我们能够使用正确的设置。

该解决方案涉及 Ant、BND 和一些自定义 ant 任务。各种捆绑包依赖项是手动管理的。我们已经在使用 Ant;BND 和自定义任务将这一切联系在一起。自定义任务只是确保我们的 bnd/eclipse 项目同步。