新建 maven web project时遇到的问题
突然想学maven,没想到建项目的过程,就经历的各种坑。。。
一开始建的是maven project,并且勾选了simple project,如图:
很顺利没有任何问题,项目结构是这样
看起来过于简单,于是一番查询后,开始进一步尝试,选择quickstart模板
报错: Missing artifact junit:junit:jar:4.5
解决:Window——priferences——Myeclipse——Maven,将offline设置为不选,随便在pom.xml按一下空格然后保存,它就可以自动下载jar文件了。。
接下来又尝试了一下webapp模板,这回出现了很多问题
首先在右下角一直在加载Retrieving archetypes,导致特别卡,最后报错,An internal error occurred during: "Retrieving archetypes:". GC overhead limit exceeded,大概的意思就是内存溢出,看了下任务管理器在加载的时候竟然达到一千多兆,查资料都很散,纠结了一整天。。
一种是修改myeclipse.ini文件,我的修改如下:
-Xms:JVM初始分配的内存 默认是物理内存的1/64
-Xmx:JVM最大分配的内存 默认是物理内存的1/4
-XX:最大非堆内存的大小,默认是物理内存的1/4
看到有高手总结优化MyEclipse速度的主要方法:
1.修改myeclipse.ini。
2.取消自动validation
3.勾掉无用插件。
4.修改启动加载模块
但是上面这种方法没有改变我的问题
后来尝试了一下不用myeclipse自带的插件
解决:Window——priferences——Myeclipse——Maven——Archetypes
选择Add Remote catalog,catalog file填写:http://repo1.maven.org/maven2/archetype-catalog.xml
或者将archetype-catalog.xml 下载到本地,选择Add Local catalog,填写路径,比联网要快。。。然后点击Apply->OK。
然后选择我们新建的作为Catalog
刚刚接触maven很多东西都是知其然不知其所以然,但是有一点是conf目录下的setting.xml文件非常重要,里面设置了中央库的位置,默认是在C:\Users\xxx\.m2\repository下,但是可以根据自己的需要修改,并且在window-preferences-MyEclipse-Maven4MyEclipse-User Setting里面的Local Repository与配置文件的位置保持一致
除此之外还有代理,镜像,在下载jar文件时往往比较慢,是因为访问国外的网站,可以在镜像中做如下修改
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
方法有一堆,但在我这并没有起到太大的作用,换了工作空间也是如此,条条大路通罗马,这次直接建web project,并选择 Add maven
报了这样一个错,
Description Resource Path Location Type
Failure to transfer com.thoughtworks.xstream:xstream:pom:1.3.1 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact com.thoughtworks.xstream:xstream:pom:1.3.1 from/to central (http://repo.maven.apache.org/maven2): The operation was cancelled. pom.xml /Test line 1 Maven Configuration Problem
直到现在也没有解决,但意外的是,这个错误并没有影响运行(希望有人可以告诉我这是怎么回事,一个红叉叉,逼死强迫症啊)
测试一下,在pom.xml文件中加入如下代码,
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
右下角可以看到正在下载对应的jar到我们的库里
—————————————————————————————
—————————————————————————————
作为没有经验的新手,身边没有可以帮忙答疑的大神,只能一步一个坑的走了。。。
接下来要研究一下maven与一些主流框架的整合。。。
坑坑坑。。。