"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 builds 到 2 或更高.
请注意,您描述的项目构建缓慢可能是由其他原因造成的:
- 确保您的 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。
- 确保它不是由您安装的插件引起的。一些插件会大大减慢项目的构建速度,即使不使用也是如此。所以检查一下,是否可以在没有额外插件的情况下使用 Eclipse 重现它。
- 避免循环依赖,因为它们会导致多次构建迭代(已更改的项目会触发依赖于该项目的项目中的构建;这可能会导致更改反过来可以触发更多项目的构建;等等):在 Project > Properties: Java Compiler > Build set 循环依赖到错误(默认) .
- 避免项目构建器周期。一个项目可以有多个构建器(请参阅 项目 > 属性:构建器 )。所有构建器将被执行,直到没有文件被更改。在不更改文件内容的情况下触摸文件也是一种更改。对于 Maven 项目,您可以使用 Maven Workspace Build view 来调试它。
我正在使用一个巨大的工作空间 (~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 builds 到 2 或更高.
请注意,您描述的项目构建缓慢可能是由其他原因造成的:
- 确保您的 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。
- 确保它不是由您安装的插件引起的。一些插件会大大减慢项目的构建速度,即使不使用也是如此。所以检查一下,是否可以在没有额外插件的情况下使用 Eclipse 重现它。
- 避免循环依赖,因为它们会导致多次构建迭代(已更改的项目会触发依赖于该项目的项目中的构建;这可能会导致更改反过来可以触发更多项目的构建;等等):在 Project > Properties: Java Compiler > Build set 循环依赖到错误(默认) .
- 避免项目构建器周期。一个项目可以有多个构建器(请参阅 项目 > 属性:构建器 )。所有构建器将被执行,直到没有文件被更改。在不更改文件内容的情况下触摸文件也是一种更改。对于 Maven 项目,您可以使用 Maven Workspace Build view 来调试它。