【问题标题】:OSGi bundles dependency management in EclipseOSGi 在 Eclipse 中捆绑依赖管理
【发布时间】:2012-05-19 19:25:38
【问题描述】:

我有一个 OSGi 包,它在 Eclipse IDE 中表示为 Eclipse 插件项目。我发现满足此插件/捆绑包依赖项的唯一方法是

  • 1) 通过File > Import... > Plug-ins and Fragments 向导导入所有依赖项(.jar 文件)
  • 2) 然后在MANIFEST.MF中声明导入的依赖

是的,这个解决方案有效,但另一方面,在我将更改提交到我们的存储库后,我的所有团队成员还必须手动将依赖项导入 Eclipse 以修复编译错误。

问题: 有没有不需要这些烦人步骤的解决方案?我只想从存储库中提取更改并继续我的工作,而无需一次又一次地修复 MANIFEST.MF 中的依赖项......

P.S.:要检索依赖项,我们使用 Apache Ivy。

【问题讨论】:

    标签: eclipse osgi eclipse-pde


    【解决方案1】:

    您需要在 Eclipse 中设置一个目标平台。我发现最简单的方法是将所有依赖项放在一个文件夹中,并将目标平台保存为 .target 文件,我将其签入源代码管理。然后我的同事需要做的唯一步骤是检索依赖项并将 Eclipse 配置为使用共享目标定义。如果我们向定义中添加新的依赖项,Eclipse 将通过重新启动或目标平台刷新自动获取更改。

    Eclipse 文档应该可以帮助您入门:http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.pde.doc.user/concepts/target.htm

    【讨论】:

      【解决方案2】:

      如果您开发基于服务器的应用程序,那么最好让 maven 或 Ivy 管理依赖项并使用 maven bundle 插件生成 Manifest。这样就可以避开Eclipse OSGi 模式和目标平台。有关如何使用 maven 开发 OSGi 包并在 Apache Karaf 上部署的教程,请参阅 http://www.liquid-reality.de/x/DIBZ。对于 Ivy,您可能需要使用稍微不同的构建,但基本应该是相同的。

      【讨论】:

      • Holly Cummins 提出的解决方案非常适合我,因为目标平台指向包含由 ivy 下载的模块的文件夹。
      猜你喜欢
      • 1970-01-01
      • 2015-03-12
      • 2015-10-04
      • 2015-12-14
      • 2017-09-10
      • 2013-11-02
      • 2022-01-23
      • 2011-11-26
      • 1970-01-01
      相关资源
      最近更新 更多