管理团队捆绑

时间:2010-10-13 01:52:20

标签: eclipse osgi

我们正在将我们的应用程序转移到OSGI平台(所有开发人员都在使用Eclipse),并且正在努力找出开发捆绑包的最佳团队环境。

我们有来自多个来源的捆绑包:

  1. 由外部代理商管理的Orbit或Apache等项目的常见捆绑包。
  2. 包装特定于域的jar文件的包。我们在内部管理这些捆绑包。
  3. 公司其他团队提供的捆绑包,仅供我们有效阅读
  4. 我们团队提供的包含积极开发的源代码的捆绑包。
  5. 在案例1-3中,我们希望在本地Eclipse IDE中安装并提供目标平台。在我看来,我们只需创建一个p2存储库,它提供1-3中的所有包,并将它们作为目标定义提供。如果有的话,请随意指出更好的解决方案。

    案例4中包含的包存储在Mercurial存储库中。虽然目标定义看起来可以从多个来源获取捆绑包,但它没有解决如何从(d)vcs中包含捆绑包。

    最佳做法是什么?我们是否将(d)vcs捆绑信息放在目标平台中,让开发人员手动下载正确的捆绑包?另外,我们如何管理目标定义的更改?我们是否必须在发生变化时向每个人发送电子邮件,或者是否有更优雅的解决方案?

    感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

与开发者分享目标的空间。缺点是,我们的SVN中有文物! 但是p2存储库听起来好多了。当每个devloper激活自动更新时,他会在更新时通知他。 我想我们必须在将来的公司里尝试一下。

我们积极开发的源代码由团队项目集(* .psf)共享。这是一个单个文本文件,其中包含exportet eclipse项目的所有存储库信息。在Eclipse IDE中使用File -> Export -> Team -> Team Project Set进行尝试。项目集是否有任何变化,实际上我们会向开发人员发送电子邮件。我认为更优雅的方式是通过p2存储库共享它。

我希望这对我糟糕的英语有帮助和抱歉!

答案 1 :(得分:2)

我正在使用eclipse,m2eclipse,maven-bundle-plugin,颠覆,nexushudson,它就像一个魅力,特别是在团队环境中。

自动化manifest.mf生成在OSGi中至关重要,因为手动执行此操作非常容易出错。使用bnd进行此操作(由bndtools或maven-bundle-plugin自动执行)

Pax Construct可以帮助构建完整的OSGi运行时环境。

答案 2 :(得分:1)

如果您喜欢使用与Eclipse无关的环境,最好使用Apache Maven [1]。

<强>赞成

  • 您的所有工件都将存储在一个Maven仓库中。您可以使用Artifactory [2]等工具为整个团队创建和共享Maven仓库(以避免第三方工件出现任何问题)。
  • 有很多OSGi Maven教程可以帮助您找到几乎所有问题的答案
  • Eclipse使用m2Eclipse [3]插件
  • 很好地支持Maven
  • IDE在这种情况下并不那么重要。您的团队成员可以选择任何(甚至是vi或emacs)

<强>缺点

  • 你必须找到所有文物的Maven回购。对于Eclipse工件来说并不是那么容易,但你可以尝试在这里找到它们:[4]
  • 根据Maven要求更改项目结构
  • 花一些时间来理解和使用Maven模式(针对OSGi)

[1] - http://maven.apache.org/

[2] - http://www.jfrog.org/products.php

[3] - http://m2eclipse.sonatype.org/

[4] - http://build.eclipse.org/helios/hybrid/final/

此致 Dmytro

答案 3 :(得分:1)

感谢所有回答过他人如何解决这个问题的人的回答。

我们最终选择了Buckminster。它允许我们快速描述我们所有捆绑包的位置(来自p2存储库的案例1-3,来自mercurial的案例4),并通过CQuery提供一个空工作区的单击设置。与我在其他项目中使用的PDE构建相比,它还与Hudson很好地集成并简化了CI设置。