4

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

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

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

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

PS:要检索依赖项,我们使用 Apache Ivy。

4

2 回答 2

4

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

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

于 2012-05-20T01:51:50.233 回答
0

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

于 2012-05-21T10:01:49.217 回答