我曾经用PDE打包各种Eclipse RCP产品多年。
随着我对Eclipse Oxygen的最新升级尝试,我得到了一些我无法解决的新的奇怪分辨率错误,我认为现在是时候试试Tycho了。我跟着the excellent article about Tycho by Lars Vogel,经过一些调整后,它运作良好(我没有被PDE中的分辨率错误所困扰!是的!)。
但实际上这是一个简单的测试:我为我的包创建了一个文件夹,为我的功能创建了另一个文件夹,创建了我的poms,等等。现在我来看看我的PDE中的自动化程度,并发现相当大的差距。
在PDE中,有一个build.properties
,您可以在其中提供主要特征文件和一个地图文件,该过程似乎是:
(注意: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插件实现自动化吗?
答案 0 :(得分:0)
经过一段时间的挖掘,这是我最终选择的解决方案。
为了获取相关功能和插件,我用了...... PDE!我挖掘了PDE并找到了其过程中的各个步骤。第一个是获取(它是一个名为eclipse.fetch
的蚂蚁任务)。我将这个部分外部化,然后我的脚本启动它,然后通过扫描获取的功能名称和fecthed插件名称来生成主poms,然后添加其他tycho confuguration然后启动tycho。
最终,被授予,它不是一个完整的tycho解决方案,它是一个混合的PDE + Tycho。但它就像魅力一样,构建/打包过程是Tycho,只有初始提取被委托给PDE。 (无论如何,PDE构建/打包过程在我的情况下不起作用,如最初所述)