如何让 Eclipse 了解 maven 存储库中的 OSGI 包(本地 &| 远程)
Posted
技术标签:
【中文标题】如何让 Eclipse 了解 maven 存储库中的 OSGI 包(本地 &| 远程)【英文标题】:How to make eclipse aware of OSGI bundles within a maven repository (local &| remote) 【发布时间】:2010-11-07 14:22:48 【问题描述】:我有一个通过 maven 构建的项目。每个模块都构建为一个 osgi 包。
在 Eclipse 中,模块也具有插件特性。一些模块需要外部依赖项(log4j、apache commons、...),它们也可以作为插件从 maven 存储库(例如 spring 企业存储库,它也是一个 OBR)中获得。
Maven 本身解决这些依赖关系没有问题,但是我如何说服 Eclipse 使用 maven 存储库检索和解析这些捆绑包作为插件(我不想为每个一个包装插件)?
是否有可以在 eclipse 中安装的“Maven Provisioner”?
【问题讨论】:
您是否已经在使用 Eclipse 的 Maven 插件? 我也有同样的问题。 Eclipse 的 Maven 插件在这里没有帮助。 Eclipse PDE 不能很好地处理由 Maven 管理的包依赖项,它坚持依赖项位于工作区(作为项目)或“目标平台”中。 没错!我想我会更改问题以使其更清楚。 【参考方案1】:我什么也没找到,所以我说服我的同事写了一个 Eclipse 插件来完成这个。它是一个配置器,它分析 m2 存储库并从那里提取找到的 osgi 插件。这是一个 alpha 版本,但您可以尝试一下,我们很高兴收到回复。只需写信给 info [at] inavare [dot] net
您可以在这里找到更新站点http://repo.openscada.org/eclipse/
【讨论】:
链接现在失效了,有点可惜。你知道这是否已经被其他人实施了吗?【参考方案2】:我猜你没有使用 Eclipse 的 Maven 插件,如果这是真的,你应该尝试来自 Sonatype 的插件,我认为这是最好的。它解决了您的依赖关系,非常稳定,并且具有一些不错的功能,例如依赖关系图工具。
【讨论】:
我用的是m2eclipse插件,但是没有解决这个问题。 maven 构建本身很好,依赖关系也得到了解决,但是 MANIFEST.MF 的验证由于缺少插件而失败(例如 log4j [我使用 osgi bundle of springs OBR])。 (我让 MANIFEST.MF 由 felix bundle 插件创建)。所以 log4 位于(本地)存储库中,但 Eclipse 没有以任何方式解决。我只想有一种方法将 Eclipse 指向本地或远程 maven 存储库,并让它自动解析插件。 (不,我不认为巴克敏斯特目前的化身是一种选择)以上是关于如何让 Eclipse 了解 maven 存储库中的 OSGI 包(本地 &| 远程)的主要内容,如果未能解决你的问题,请参考以下文章
eclipse m2eclipse 从Maven的本地库中读取依赖库