我们正在将我们的应用程序转移到OSGI平台(所有开发人员都在使用Eclipse),并且正在努力找出开发捆绑包的最佳团队环境。
我们有来自多个来源的捆绑包:
在案例1-3中,我们希望在本地Eclipse IDE中安装并提供目标平台。在我看来,我们只需创建一个p2存储库,它提供1-3中的所有包,并将它们作为目标定义提供。如果有的话,请随意指出更好的解决方案。
案例4中包含的包存储在Mercurial存储库中。虽然目标定义看起来可以从多个来源获取捆绑包,但它没有解决如何从(d)vcs中包含捆绑包。
最佳做法是什么?我们是否将(d)vcs捆绑信息放在目标平台中,让开发人员手动下载正确的捆绑包?另外,我们如何管理目标定义的更改?我们是否必须在发生变化时向每个人发送电子邮件,或者是否有更优雅的解决方案?
感谢您的帮助。
答案 0 :(得分:2)
与开发者分享目标的空间。缺点是,我们的SVN中有文物! 但是p2存储库听起来好多了。当每个devloper激活自动更新时,他会在更新时通知他。 我想我们必须在将来的公司里尝试一下。
我们积极开发的源代码由团队项目集(* .psf)共享。这是一个单个文本文件,其中包含exportet eclipse项目的所有存储库信息。在Eclipse IDE中使用File -> Export -> Team -> Team Project Set
进行尝试。项目集是否有任何变化,实际上我们会向开发人员发送电子邮件。我认为更优雅的方式是通过p2存储库共享它。
我希望这对我糟糕的英语有帮助和抱歉!
答案 1 :(得分:2)
我正在使用eclipse,m2eclipse,maven-bundle-plugin,颠覆,nexus和hudson,它就像一个魅力,特别是在团队环境中。
自动化manifest.mf生成在OSGi中至关重要,因为手动执行此操作非常容易出错。使用bnd进行此操作(由bndtools或maven-bundle-plugin自动执行)
Pax Construct可以帮助构建完整的OSGi运行时环境。
答案 2 :(得分:1)
如果您喜欢使用与Eclipse无关的环境,最好使用Apache Maven [1]。
<强>赞成强>:
<强>缺点强>:
[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设置。