"Building" 和 "Load Target Platform" 并行执行

Parallel execution of "Building" and "Load Target Platform"

我正在使用一个巨大的工作空间 (~1200 bundles/fragments) 和一个目标平台(文件)以及大约 800 个额外的包。设置此工作区(切换分支、更改目标平台等)并使其“绿色”需要花费大量时间(20 分钟至 2 小时)。在设置这个工作区的过程中,我意识到一些 Eclipse 内部任务,例如“Building”和“Loading Target PLatform”是并行执行的。

但这对我来说没有多大意义,因为我假设除非解决所有必需的插件依赖关系,否则您无法成功构建工作区。这意味着应该在构建实际工作区之前加载目标平台。结果是,一旦“Building”和“Load TP”完成,工作区就会变得一团糟,错误超过 100000 个,需要一些硬核“Eclipse Dance”[tm] 才能使其“绿色”。

我的问题是:

这些任务之间的某种排除可以解决这个问题吗? 有没有办法在 Eclipse IDE 本身的这些任务之间指定某种规则? 如果它只能通过操纵底层 Eclipse.org java 类 来实现,那会是哪一个?推荐的方法是什么?

对于大型项目,在从源代码存储库更新并使用 Gradle/Maven 构建它之前,我在“项目”菜单中禁用“自动构建”。 Gradle 完成后,我启用“自动构建”。

并行构建项目可以在常规>工作区的首选项中启用> Build 通过设置 Max simultaneous project builds2 或更高.

请注意,您描述的项目构建缓慢可能是由其他原因造成的:

  1. 确保您的 Eclipse(平台和所有插件)是最新的。根据屏幕截图,您的 Eclipse 似乎很旧,因此切换到其他分支时您会错过 numerous performance improvements that have been made in recent versions. For example, since EGit 5.6 only files actually modified instead of all files are refreshed
  2. 确保不是由您安装的插件引起的。一些插件会大大减慢项目的构建速度,即使不使用也是如此。所以检查一下,是否可以在没有额外插件的情况下使用 Eclipse 重现它。
  3. 避免循环依赖,因为它们会导致多次构建迭代(已更改的项目会触发依赖于该项目的项目中的构建;这可能会导致更改反过来可以触发更多项目的构建;等等):在 Project > Properties: Java Compiler > Build set 循环依赖错误(默认) .
  4. 避免项目构建器周期。一个项目可以有多个构建器(请参阅 项目 > 属性:构建器 )。所有构建器将被执行,直到没有文件被更改。在不更改文件内容的情况下触摸文件也是一种更改。对于 Maven 项目,您可以使用 Maven Workspace Build view 来调试它。