目前是不是可以通过 Maven 构建 Eclipse 插件并具有良好的 IDE 集成?
Posted
技术标签:
【中文标题】目前是不是可以通过 Maven 构建 Eclipse 插件并具有良好的 IDE 集成?【英文标题】:Is it currently possible to build Eclipse Plugins by Maven AND have nice IDE Integration?目前是否可以通过 Maven 构建 Eclipse 插件并具有良好的 IDE 集成? 【发布时间】:2010-10-07 10:16:56 【问题描述】:我目前正在评估 maven 以改进我们的构建过程。到目前为止,普通 jar 文件的构建和创建工作正常,尽管我对 Maven IDE 并不完全满意。
我现在正处于构建项目所需的所有库的位置,并且我将继续进行 Eclipse RCP 项目。现在我不知道该怎么办了。
在开始实际的 RCP 部分之前,我需要先构建一些插件。因此,我实际上有 3 个问题。
我想构建这些插件,唯一真正的解决方案似乎是 maven-bundle-plugin:http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html
但是,为了实现良好的 IDE 集成,我还需要自动生成的相应文件(plugin.xml、build.properties 等)。
对于构建 RCP 部件,目前看来唯一的解决方案是 pde-maven-plugin http://mojo.codehaus.org/pde-maven-plugin/,据我所知,它使用了 ant-pde。这很愚蠢,不是吗?
我唯一能找到的其他东西是 tycho (http://www.sonatype.com/people/2008/11/building-eclipse-plugins-with-maven-tycho/) ,但这还处于非常早期的阶段。
再一次,一个好的 Eclipse 集成是必要的。我真的,真的,真的不想指定依赖两次。
那么如何使用 maven 构建 Eclipse RCP 项目?
更新
目前,似乎没有这样的解决方案可用。 Tycho 看起来很有前途,但我浪费了 2 天时间并没有让它运行(此时的当前版本)。也许半年左右就可以准备好。
【问题讨论】:
由于 PDE 基于 ANT 构建文件,我看不出 pde-maven-plugin 有多愚蠢。不要重新发明***。 但是 maven 已经自己完成了大部分事情(编译、打包等),那么为什么不拥有一个完全独立(来自 ant)且配置开销最小的插件呢? 我目前正在查看 Tycho vs. Buckminster 等。在您提出问题一年多之后,您的体验如何? 【参考方案1】:不,没有这样的工具。 第谷也是我所知道的唯一方法。
【讨论】:
【参考方案2】:我使用m2eclipse,它非常适合我的需求。您在 pom.xml 中指定依赖项,它们会自动在 Eclipse 的构建路径中考虑。
警告:关于 RCP,我无法透露任何信息(从未为该平台构建过任何东西)。
最好的问候,
西里尔
【讨论】:
很好的答案,我只是想补充一点,我创建了一个 maven 插件,我喜欢使用 maven。【参考方案3】:您是否一心想要使用 maven 构建您的 RCP 应用程序?我问这个是因为,根据我使用 maven 构建任何比琐碎的 RCP 应用程序的经验,可能会很痛苦。当我开始研究 RCP 应用程序时,我最初使用 maven 作为构建解决方案进行了调查,但发现当时在 maven 中对 eclipse 构建的支持非常基础。此外,我的一些同事正在我们公司的另一个基于 RCP 的项目中使用 maven,虽然对 eclipse 的支持变得更好,但他们不得不跳过一些障碍才能让它按照自己的喜好工作。所以,我的意见是,目前,坚持为您的 RCP 应用程序使用基于 ant 的 pde 构建。
【讨论】:
【参考方案4】:现在 Tycho 允许根据已构建的捆绑包的清单(必需的捆绑包、导入的包等)解决依赖关系。
此外,Tycho 可以配置为使用target platform 进行构建。 这允许对 maven 和 pde 构建使用相同的目标平台。
从 v0.24.0 开始,Tycho 甚至可以构建POM-less 插件和功能,避免版本和 artifactId 元数据的重复。
鉴于上述情况,考虑到即使是几年前的Eclipse Platform is built using it,Maven Tycho 也是目前构建无头 RCP 的最佳方式。
【讨论】:
【参考方案5】:在我们的项目中,我们将目标平台和应用程序插件分开。简而言之:我们使用 Maven 构建目标平台,而应用程序插件使用 PDE 构建。
【讨论】:
【参考方案6】:我用了一段时间Mavenide,还可以。不过不知道今天怎么样。
【讨论】:
【参考方案7】:Tycho 满足您的需求。现在在 2012 年,它是一套成熟且可用的 maven 插件。我只能推荐它。
自 2009 年以来,文档的质量显然没有太大变化。让第谷运行可能会很困难。我们设法了解了 Tycho,并且我们已经成功地使用它来构建一个相当大的 Eclipse RCP 应用程序超过一年半了。我们采用了清单优先的方法,其中所有插件(项目)依赖项都在 MANIFEST.MF 中定义。我们构建的最终产品是一个可执行应用程序,也是一个p2 site,以便于更新。全部由 maven build 完成。
【讨论】:
嗨,tycho 是否构建了一个独立的 maven 项目(如使用原型),是否构建了 netBeans RCP 应用程序,或者它更复杂的是它被困在 Eclipse IDE 上。因为我在这里看到的似乎更复杂wiki.eclipse.org/Developing_Tycho.【参考方案8】:如果您正在构建 Eclipse 插件或应用程序 (RCP),推荐使用 Maven Tycho 来构建它。
它在解决 osgi 依赖项方面非常聪明。你可以参考我在Maven Tycho Tutorials上的教程
Maven Tycho 需要安装 m2eclipse 和 Tycho 配置器。
原型应该是 eclipse-plugin 或 eclipse-feature 或 eclipse-repository
【讨论】:
以上是关于目前是不是可以通过 Maven 构建 Eclipse 插件并具有良好的 IDE 集成?的主要内容,如果未能解决你的问题,请参考以下文章