不要让catalogs搞死你的eclipse
楼主终于走出校园,踏上软件职场之路。新人要学的东西有很多,要战胜的东西很多,这些东西除了技术本身,还有对未知领域的恐惧,新接触技术,比如新的框架,可能好几天连一个helloworld级别的东西都写不出来,那种绝望感,真的,我深深体会。
上周末,刚接触maven,这周在做实验的时候,用eclipse创建的web项目,被maven的catalog搞死了我的elcipse好多次。惊恐之余,终于找到解决方案,现在把解决方案写出来,以便今后犯同样的错误的同行借用。
现在我们来情景再现:
在我的eclipse点击file->new->other->maven->Maven Project来创建一个新的maven项目.然后点击next,这一步要注意了,如果你选中了create a simple project,则不回出现下列问题。遗憾的是我没有勾选create s simple project.因为我想用一个archetype来创建一个maven project,点击next。不到一分钟,我还来不及选择想要的archetype类型,eclipse已经弹窗报告出错。
'Retrieving archetypes:' has encountered a problem
An internal error occurred during:"Retrieving archetypes:".
点击详细报告:
An internal error occurred during: "Retrieving archetypes:".
Java heap space
点击OK,结果是冷冰冰的eclipse要求关闭的提示。
参考网上解决方案,你先按照方案一来,如果方案一还没有解决,再参考方案二。
方案一:
- 找到Eclipse的根目录下的eclipse.ini文件并用记事本打开.
- 修改文件中的以下配置
-Dosgi.requiredJavaVersion=1.6
-Xms512m
-Xmx1024m
这是配置你的jvm的默认最小内存。可是我做到这一步的时候,创建一个新的maven项目的时候还是出错,这是回到开头所说的,只要不勾选那个钩就ok了,但是问题是我想用maven的archetype的模板来创建项目啊。然后继续百度,重启eclipse,发现,这家伙,我的eclipse启动的时候,180多兆,完全启动占用的内存是250多兆,每当要创建新的maven项目,这下子内存不到一分钟就奔到600多兆去了。
从网上得到的经验应该是:每次新建项目,maven总是去连接远程的catalogs文件,而可能是我们的网友问题导致连接失败或者无限制的等待,其实我也不知道这与内存的泄露有什么关系,反正eclipse很粗暴的就爆出了内存堆泄露,要强制关闭eclipse,那个catalogs的选项全是空白。
方案二
配置eclipse中的maven archetype选项。
1. 首先去maven官网下载archetype-catalogs.xml文件,或者右键查看源码,然后再本地新建一个archetype-catalogs.xml文件,将复制到的内容粘贴进去,保存。
2. 在eclipse点击windows->preferences->Maven下拉三角形->archetypes有边框有archetypes的配置。选择添加本地的xml配置文件,Add Local Catalogs->File Location选择第一步创建的archtype-catalogs.xml,然后点击Apply->OK。
3. 重启eclipse,再次创建我的maven web项目,如果catalog的默认选项不是Default Local,记得要选择这个选项,再重启eclipse,发现这次不去网上找这个配置文件了,提供选择的catalogs的选择有一大堆,还可以filter过滤想要的模板,而且内存也在正常的200多兆。
网上也有类似的解决方案,但是没有人能够将这两种解决方案解决起来,如果方案一还没有解决掉的童鞋,可以参考继续方案二。一个非技术性的东西就可以难道一个新人,那种无助感是只有自己能够体会的。由此可见,一个人要想从象牙塔式的生活过渡到真正的社会,从一个学生脱变为一名合格的软件工程师是不容易的。走过的坑多了,以后的路就平坦了。