dependencies - 如何管理 OSGi 构建依赖项?

标签 dependencies osgi build

我们已将 OSGi 运行时 (Equinox) 嵌入到自定义客户端-服务器应用程序中,以促进插件开发,目前一切进展顺利。由于内置的​​ list 编辑器、依赖管理和导出向导,我们一直在使用 Eclipse 构建插件。使用 Eclipse 来管理构建对于通过 Hudson 进行持续集成不是很有帮助。

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

澄清:

生成的构建脚本只能通过 Eclipse 使用。它们需要手动运行 Eclipse 的各个部分。我们还有一些 Eclipse 构建没有的标准目标,我不想修改生成的文件,因为我可能会重新生成(我知道我可以做包含,但我想避免所有 Eclipse 生成文件一起)

这是我的项目布局:

/
-PluginA
-PluginB
-PluginC
.
.
.

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

最佳答案

Maven2一路;有一个名为 m2eclipse 的 Eclipse 插件为了帮助管理它,解决了依赖问题,然后解决了一些问题。有一个free online book as documentation .

具体看multi-module projects用于将许多组件捆绑在一起并让 Maven 计算出构建顺序和依赖关系。

还有一个chapter on the Eclipse integration .

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

从根本上说,Maven 模块模型与 OSGi 的捆绑模型完美契合。 3 年多来,我们一直在使用 Maven 构建和管理具有数百个 bundle 的多个产品,这非常棒。

关于dependencies - 如何管理 OSGi 构建依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27818/

相关文章:

curl - 使用 CMake 的外部项目安装 libcurl4-openssl-dev

c++ - 如何将一组 C++ 动态分配的对象表示为 BGL(Boost Graph Library)图以获得它们的依赖图?

java - 运行时依赖第三方?

maven-2 - Maven2 跨父子共享依赖(不重新声明子依赖)

java - 小方法的性能偏差

visual-studio - 使用 Devenv.com 在命令行和输出日志文件中显示输出

java - AEM/CQ5 多个 bundle 相同的包名称和不同的数据类型属性

osgi - 在同一个 jar 中打包多个 OSGi 包

javascript - 单页应用程序的 HTML 和 JS 片段的构建时组装

build - 来自 TeamCity 中相同构建配置的工件依赖项