弥补PDE和第谷之间的差距

时间:2018-02-02 16:26:08

标签: eclipse eclipse-rcp tycho eclipse-pde

我曾经用PDE打包各种Eclipse RCP产品多年。

随着我对Eclipse Oxygen的最新升级尝试,我得到了一些我无法解决的新的奇怪分辨率错误,我认为现在是时候试试Tycho了。我跟着the excellent article about Tycho by Lars Vogel,经过一些调整后,它运作良好(我没有被PDE中的分辨率错误所困扰!是的!)。

但实际上这是一个简单的测试:我为我的包创建了一个文件夹,为我的功能创建了另一个文件夹,创建了我的poms,等等。现在我来看看我的PDE中的自动化程度,并发现相当大的差距。

在PDE中,有一个build.properties,您可以在其中提供主要特征文件和一个地图文件,该过程似乎是:

  • 解析主要功能
  • 解析其中的功能(递归)
  • 解析其中的插件
  • 在地图文件中找到要打包的插件(其他依赖项应该在目标平台中)
  • 下载相关的git repos
  • 将相关插件/功能移至工作目录
  • 启动compile,p2等

(注意:git部分需要你提供egit fetchfactory)

现在在第谷,我必须创造poms,但这不是问题。我必须创建一些主poms,对于单个插件poms,我有pomless选项或pom生成器。 pom生成器似乎也具有创建包含所有插件作为模块的父pom的优点。到目前为止一切都很好。

但我必须填写功能和插件文件夹,我被困在这里。 我的产品没有PSF,因为我从不需要它:在PDE中,地图+产品定义可以解决问题。

这是否意味着我必须从现在开始维护PSF,还是有其他的tycho解决方案我没找到? (在我看来,第谷医生很稀缺)。维护PSF对我来说似乎是多余的,因为我有产品和地图,还因为我有很多产品,很多插件,其中很多都是几种产品所共有的。

(实际上,一个基本的解决方案是获取地图文件中提到的git存储库,将它们全部转储并启动tycho.Tycho将编译所有插件,然后p2部分将仅打包与产品相关的插件。问题是我有很多不同的产品依赖于大量不同的存储库。即使在给定的git repo中,我也有可能与某个产品相关或不相关的插件。因此,我会编译数百个无用的插件在这个过程中。)

我需要在tycho文件夹中仅复制我的产品中引用的插件和功能,这些插件和功能尚未在我的目标平台中。从我的产品和我的地图生成PSF将改变问题。

确实,我可以编码,如果需要,我会。 但鉴于所有这些已经在PDE中实现了自动化,至少有一部分流程可以通过一些我没有发现的tycho插件实现自动化吗?

1 个答案:

答案 0 :(得分:0)

经过一段时间的挖掘,这是我最终选择的解决方案。

为了获取相关功能和插件,我用了...... PDE!我挖掘了PDE并找到了其过程中的各个步骤。第一个是获取(它是一个名为eclipse.fetch的蚂蚁任务)。我将这个部分外部化,然后我的脚本启动它,然后通过扫描获取的功能名称和fecthed插件名称来生成主poms,然后添加其他tycho confuguration然后启动tycho。

最终,被授予,它不是一个完整的tycho解决方案,它是一个混合的PDE + Tycho。但它就像魅力一样,构建/打包过程是Tycho,只有初始提取被委托给PDE。 (无论如何,PDE构建/打包过程在我的情况下不起作用,如最初所述)