繁体   English   中英

与Eclipse相比,使用Ant构建PDE非常慢

[英]PDE build with Ant is extremly slow compared to Eclipse

我有一个非常大的OSGi项目,大约有300个捆绑包。 当我在Eclipse中导入项目并执行“ Project -> Clean...和“ Project -> Build All时,大约要花10分钟才能Project -> Build All内容,然后才能启动我的应用程序。

我认为10分钟已经很长了,但是当我使用Ant脚本执行无头PDE构建时,大约需要一个小时! 我认为出了点问题...

您是否对我有任何提示,如何加快基于Ant的构建? 还是如何找出问题所在? 我将正常的PDE构建与以下命令结合使用。 我不知道为什么它比Eclipse中的完整构建要慢得多。

java -jar eclipse/plugins/org.eclipse.equinox.launcher_<version>.jar -application org.eclipse.ant.core.antRunner -buildfile  eclipse/plugins/org.eclipse.pde.build_<version>/scripts/build.xml -Dbuilder=<path to the build configuration folder>

谢谢托马斯

PS .:我知道这个问题很笼统,但是即使提示如何发现性能不足也会有所帮助。

所见即所得,因为您正在(可能)比较两个不同的事物:

在Eclipse IDE中强制重建时,您只需编译所有Java文件。 (对于我们的270捆绑包项目,这大约需要1-2分钟。)

使用PDE-build进行构建时,您还要打包产品(生成捆绑包和功能,解决插件依赖项,对所有内容进行JAR处理等),这将花费更多的时间。 (对于我们的项目,这大约需要6-7分钟。)在IDE中,等效的操作是打开.product文件,然后在编辑器的“概述”选项卡上,选择“ eclipse产品导出向导”。

至于如何加快构建的提示:我所知道的没有万灵丹。 但是:搜索“ tycho build eclipse”,和/或参见http://www.vogella.com/tutorials/EclipseTycho/article.htmlhttps://eclipse.org/tycho/ 换句话说:您可以将构建更改为使用Tycho,从而使您能够分别构建每个插件(如果需要,可以增量构建)。

我在一个大型RCP项目中工作,该类大约有5万个类,分布在工作区中的850个项目/包中(目标平台的包数量与之相似)。 我们在台式机和Jenkins服务器中都有SSD,以加快构建速度。 在Linux上构建比在Windows上构建快得多。 Windows工作区的所有刷新和清理工作大约需要2-3分钟,而完整的Linux无头构建大约需要25分钟(在Windows上是一个多小时)。

PDE无头构建过程不是很高效,并且会执行很多疯狂的I / O。 在构建开始时,通常会看到脚本在“ generateScript”和“ generateFeature”阶段暂停几分钟。 如果您对它们进行了分析,则在计算依赖关系树时,将看到build.properties文件的数百万次读取(我对1000个build.properties进行了4,600万次读取,然后决定停止),所以那里不对劲。 现在,PDE无头构建系统已在Eclipse上有效地弃用了Tycho,因此我怀疑它会被研究。

如果您具有Eclipse功能,请确保内含物合理-通过在多个位置包含相同功能,我们发现上述generateScript / generateFeature阶段可能花费的时间比所需的长得多。

如果您可以分阶段构建项目,以便可以将一个阶段的产品用作下一个阶段的目标平台,那么它确实会有所帮助。

最后,尝试将构建版本移至Tycho / Maven。 除了某些支持项目外,我们还无法做到这一点(部分是由于目标平台的构建方式,部分是由于在多个地方使用了customBuildCallbacks,通常是由于时间紧缺),但是它确实是一个更好的构建系统。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM