如何在Eclipse中使用大型Maven项目工作区高效工作?

时间:2014-01-31 17:48:33

标签: java eclipse performance maven multi-module

我正在研究一个基于Maven的大型多模块系统,它有大约20个子模块和另外少量的项目外部依赖项,这些依赖项也是Eclipse工作区中的Maven项目。总而言之,Eclipse工作区中有大约30个项目。

项目都是m2e的导入maven项目,我们使用Subversion(带Subversive插件)进行源代码控制。 Eclipse是最近更新的Kepler。

我的工作站非常强大,配备4核Intel i7 CPU,16 Gb RAM和固态硬盘。

问题是Eclipse在以下方面非常慢:

  1. 团队同步和解决冲突。每次我解决冲突 并且“标记为合并”,我必须等待10到30秒才能完成Eclipse 刷新工作空间等。更不用说冲突模式树了 视图然后完全清除,所以我必须选择传出模式 冲突模式再次重新填充。两次 - 因为它清除了我 保存已解析的源文件,然后在我标记为已合并时再次保存。

  2. 建筑物。我使用Maven启动配置来做Maven构建。但 出于某种原因,对Eclipse进行Maven构建是不够的 - 然后它必须自己构建整个工作区,这 当Eclipse决定挂起时,至少需要相同的时间和更长的时间 在“清除项目xxx的输出文件夹”上几分钟,用于 几个项目。

  3. 所有这一切的结果是,从源代码控制更新,解决冲突,构建并准备好运行或继续开发通常需要一个多小时。

    我和我的同事经常觉得Eclipse正在阻碍开发,应该加强它。

    有什么办法可以减少永恒的等待Eclipse综合症吗?

3 个答案:

答案 0 :(得分:1)

我建议的一些好建议是:

  1. 在开始导入大型项目之前,请转到“项目”并取消选中“自动构建”
  2. 您可以在最小的子组件中导入项目。如果项目是Mavenized,这意味着每次都要在树中选择最低的pom.xml,而不是导入一个大的父POM及其所有的子项目。
  3. 如果您没有处理(如修改)特定项目的源代码,请通过右键单击并转到“关闭项目”将其关闭。这将释放Eclipse在其他地方使用的资源。如果您仍然需要查看某些内容的源代码而不进行修改(用于调试),则可以根据需要添加source container
  4. 为不同的项目使用不同的工作区。最终,拥有2个可运行的快速Eclipse版本比使用一个非常慢的版本
  5. 更快

    如果您无法拆分项目,您还可以尝试为Eclipse提供更多内存,并确保您使用的是JVM 8,例如

      

    -Dosgi.requiredJavaVersion = 1.8 -Xms512m -Xmx2g

    听起来你只是处理对大多数IDE来说太大的东西,但情况可能并非如此。如果所有其他方法都失败了,为什么不试试IntelliJ来看看这对你有用吗?

答案 1 :(得分:0)

我们遇到同样的问题......我们工作区中的72个项目通常不能使用m2e。我们试图不使用m2e并启动maven可执行文件作为具有一些配置的外部工具。你可以让maven生成你的.project和.classpath来改变eclipse的配置。不是最好的选择,但我们现在拥有

答案 2 :(得分:0)

伙计我遇到了同样的问题但是你可以正确地分析这些应用程序的设计,而不是使用IDE来进行暴力破解吗?我告诉您,因为有些应用程序不必完全构建,您可以单独部署并在模块中进行分析。大多数时候,将成千上万的类保存在一起,构建它并将它们保持在一起没有任何理由......像Eclipse这样的IDE并不是为这些任务设计的,而是针对本地开发的并且服务器执行集成构建,而不是工作站。 可能你的设计或你的持续构建哲学有些被误解了。