管理团队捆绑包

发布于 2024-09-27 08:50:13 字数 595 浏览 0 评论 0原文

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

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

  1. 来自由外部机构管理的 Orbit 或 Apache 等项目的常见捆绑包。
  2. 包装特定于域的 jar 文件的捆绑包。我们在内部管理这些捆绑包。
  3. 公司其他团队提供的捆绑包对我们来说实际上是只读的。
  4. 我们团队提供的包含积极开发的源代码的捆绑包。

在情况 1-3 中,我们希望安装在本地 Eclipse IDE 中并提供目标平台。在我看来,我们只需创建一个 p2 存储库,它提供 1-3 中的所有捆绑包,并将它们作为目标定义提供。如果有更好的解决方案,请随时指出。

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

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

感谢您的帮助。

We are moving our application to the OSGI platform (All developers are using Eclipse) and are trying to figure out the best team environment for developing our bundles.

We have bundles from multiple sources:

  1. Common bundles from projects such as Orbit or Apache that are managed by outside agencies.
  2. Bundles that wrap domain specific jar files. We manage these bundles internally.
  3. Bundles provided by other teams in the company that are effectively read only for us
  4. Bundles provided by our team that contain actively developed source code.

In cases 1-3 we would like install in our local Eclipse IDE and provide a target platform. It seems to me we would just create a p2 repository that provides all of the bundles in 1-3 and provide them as a target definition. Feel free to point out a better solution if there is one.

The bundles contained in case 4 are stored in a Mercurial repository. Although the target definition looks like it can grab bundles from several sources it does not address how to include bundles from a (d)vcs.

What is the best practice? Do we put our (d)vcs bundle information in the target platform and just make developers download the correct bundles manually? Also how do we manage changes to the target definition? Do we have to email everyone when it changes, or is there a more elegant solution?

Thanks for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

仙气飘飘 2024-10-04 08:50:13

与开发人员共享目标的空间。缺点是,我们的 SVN 中有工件!
但 p2 存储库听起来要好得多。当每个开发者激活自动更新时,他会通知何时有可用更新。
我想我们将来必须在我的公司尝试一下。

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

我希望这对我有帮助,并对我的英语不好表示歉意!

space to share the target to the developer. The disadvantage is, that we have artifacts in our SVN!
But the p2 repository sounds much better. When every devloper activate auto-update, he will informed when updates avaiable.
I think we must try it in the future at my company.

Our actively developed source code we share by Team Project Sets (*.psf). This is an single text file which contains all repository information of the exportet eclipse projects. Try it in your Eclipse IDE with File -> Export -> Team -> Team Project Set. Are there any changes on the Project Set actually we send an email to our developers. An more elegant way I think is it to share it over the p2 repository.

I hope that helps and sorry for my bad english!

狼亦尘 2024-10-04 08:50:13

我正在使用 eclipse、m2eclipse、 maven-bundle-plugin< /a>、颠覆、nexushudson,它很有魅力,尤其是在团队环境中。

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

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

I am using eclipse, m2eclipse, maven-bundle-plugin, subversion, nexus and hudson, and it works like a charm, especially in a team environment.

Automating the manifest.mf generation is critical in OSGi, because doing this by hand is very error-prone. Use bnd for this (automated by bndtools or maven-bundle-plugin)

Pax Construct can help in building a complete OSGi runtime environment.

香橙ぽ 2024-10-04 08:50:13

如果您喜欢使用独立于 Eclipse 的环境,最好使用 Apache Maven [1]。

优点

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

问候,
德米特罗

It's better to use Apache Maven [1] if you like to use Eclipse-independent environment.

Pros:

  • all your artifacts will be stored in one Maven repo. You can use such tools like Artifactory [2] to create and share Maven repo for whole team (to avoid any problems with 3rd-party artifacts)
  • there a lot of OSGi Maven tutorials available that help you to find answers to almost all your questions
  • Eclipse supports Maven very well with m2Eclipse [3] plugin
  • IDE is not so important in this case. Your team members can select any (even vi or emacs)

Cons:

  • you have to find Maven repos for all your artifacts. It's not so easy for Eclipse artifacts, but you can try to find them here: [4]
  • change your project structure based on Maven requirements
  • spend some time to understand and use Maven patterns (for 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/

Regards,
Dmytro

烟柳画桥 2024-10-04 08:50:13

感谢所有回答的人深入了解其他人如何解决这个问题。

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

Thanks to everyone who answered for the insight into how others are solving this problem.

We ended up going with Buckminster. It allows us to quickly describe where all our bundles are (cases 1-3 from p2 repositories, case 4 from mercurial) and provides one click setup of empty workspaces through the CQuery. It also integrates well with Hudson and simplifies CI setup compared to the PDE build I have used on other projects.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文