使用maven依赖项开发eclipse插件

时间:2013-05-29 15:21:48

标签: eclipse maven eclipse-plugin tycho

我已经在墙上撞了大约6个月了,并没有找到一种简洁的方式来理解用第三方资源开发eclipse插件的机制。

我们正在尝试开发Eclipse ODA,以便在基于Spring的内部代码之上运行,以访问基于REST的信息集。

粗略地说 - 这就是我认为我们需要做的事情:

  • 使用tycho或felix bundle插件使用Eclipse包信息扩充我们的maven工件。
  • 通过Eclipse为ODA实施设置一个插件项目& UI。
  • 让Tycho为插件生成poms等。

现在我在这里变得浑浊。我知道有两种方法

  1. Manifest-First - 这是定义插件依赖项的标准机制
  2. POM-First - 通过Maven的解析机制提供依赖关系。
  3. 我不完全确定从哪里开始尝试开始这样做,因为我从来没有开发过eclipse插件。

    我遇到的另一个问题是,eclipse插件(maven)的开发人员如何利用现有的第三方代码(即Apache HttpClient 4.x)?他们是否必须下载jar,将它们转储到项目目录中,添加到classpath,然后从那里开始,或者是否存在类似于常春藤,maven,gradle的“存储库”机制?

    提前致谢,如果我对此进行一些疏忽,我会道歉。

3 个答案:

答案 0 :(得分:4)

  

免责声明:您的问题非常广泛,因此无法完全回答。不过,我可以给你一些提示,以便你知道要搜索什么。

在Eclipse Universe中,库的主要来源(在二进制依赖性意义上)是p2存储库。但是,由于p2存储库很少在Eclipse上下文之外使用,因此您不会例如在Apache HTTP Client项目的下载页面上找到一个p2存储库。

为了解决这个问题,有Eclipse Orbit Project提供了p2存储库中Eclipse项目使用的库。

如果您无法在Eclipse Orbit中找到库或库版本,您也可以使用Maven存储库中的库。例如,Tycho通过pomDependencies =考虑机制支持这一点。

但请注意,Eclipse插件只能依赖于OSGi包的库。因此,如果Maven存储库中的库还不是OSGi包,则需要先将其转换为OSGi包,例如使用maven-bundle-plugin和Embed-Dependency机制。

答案 1 :(得分:3)

Eclipse插件使用库的最佳方式是OSGi包。您只需将这些软件包安装到目标平台中,并以与eclipse.org插件相同的方式引用它们。一些库提供商已经将他们的库作为OSGi包提供。如果没有,您通常可以通过添加一些清单条目将普通库jar转换为OSGi包。

根据您使用的构建系统以及您所需的库是否可用作打包到在线p2存储库中的OSGi包,您可以引用该URL并依赖您的构建来下载和安装该软件包。

答案 2 :(得分:1)

如果选择具有依赖关系的Eclipse插件的构建系统的问题仍然存在:

今天我发布了新的gradle插件:Wuff版本0.0.1,(我认为)完全解决了这个问题。它允许构建Eclipse捆绑包和应用程序,因为它们将是正常的" Gradle项目。所有OSGi woodoo都是自动生成的(虽然可以自定义)。所有依赖关系都是常见的maven依赖关系 - 无论依赖关系是OSGi还是" normal"库。

来源和文档:https://github.com/akhikhl/wuff