【问题标题】:Best practice to add a maven dependency to an Eclipse RCP Plugin将 Maven 依赖项添加到 Eclipse RCP 插件的最佳实践
【发布时间】:2020-01-09 05:27:58
【问题描述】:

我想将一些 GitHub 项目作为依赖项添加到我的 Eclipse RCP 插件中。 GitHub 项目是oshileshan

两个 GitHub 项目都提供了基于 maven Central 的 maven 构建,我可以使用。

但据我所知,到目前为止,我不能直接在 Eclipse RCP 插件中使用这些构建,因为它需要 OSGI 捆绑包 - 与“经典”Eclipse Java 项目相比。

到目前为止,我找到了三种处理这个问题的方法:

我也研究了 Tycho,但据我了解,您只能在 Tycho 中添加一个 p2 存储库作为依赖项,这再次导致创建一个问题。

是否有另一种/更好的方式来处理 Eclipse RCP 插件中的非 OSGI 捆绑 Maven 构建?

编辑:我为我找到了使用 gradle(一个 gradle 插件 bnd-platform)的最佳方法,使用 maven Central 自动解决依赖关系并创建一个本地 p2 存储库,如选项 1 中所述 https://stackoverflow.com/a/29509794/12029492

【问题讨论】:

  • 不,没有更好的方法。在 Maven 中,模块/包在编译/构建时解析,而在 OSGi 中,包可以在运行时启动和停止。为此,在 OSGi 中,JAR 必须包含额外的元数据,并且 p2 存储库必须包含元数据以解析导入的包。因此,您首先必须将 JAR 转换为 OSGi 包(或要求 JAR 的供应商这样做),然后通过 Tycho tycho-p2-extras:publish-features-and-bundles 创建本地 p2 存储库。
  • 感谢您让我明白
  • 我是 OSHI 的主要维护者。我以为我们已经通过bnd-maven-plugin 发布了 OSGi 包。我错了吗?有什么我需要配置的吗?
  • 是的,你的权利,看起来 OSHI 已经是一个 OSGi 包。很抱歉给您带来不便。

标签: maven eclipse-plugin dependencies eclipse-rcp tycho


【解决方案1】:

最近,Eclipse Maven (M2E) 实现了 Java 库从 Maven 中心到目标平台的紧密集成。有了这个,您可以轻松地将 Java 库添加到您的目标平台,并且可以即时将它们转换(如果需要)到 OSGi 包,包括它们的依赖项。

请参阅https://www.vogella.com/tutorials/EclipseJarToPlugin/article.html,了解如何使用 Java 库(来自 Maven Central)进行 OSGi、Eclipse 插件和 Eclipse RCP 开发。

最新的 Maven Tycho 版本也支持此扩展,用于命令行构建,请参阅 https://www.vogella.com/tutorials/EclipseTycho/article.html

【讨论】:

    猜你喜欢
    • 2013-07-13
    • 2012-11-28
    • 2015-02-18
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多