用Maven来时行Java项目管理的好处还是很明显的,特别是有多人一起开发的大项目。
于是就来实践一下Maven,过程太过略心,好在最后还是搞定了,特此纪录一下过程。
1.
此前的开发环境一直是JDK6+Eclipse Juno,安装m2eclipse插件,插件地址可从http://www.eclipse.org/m2e/获取。由于开发环境版本较老,只能安装老版本的m2eclipse,大概1.4,安装过程还算顺利。
2.
安装成功后配置了一个setting.xml并修改了默认的本地库目录。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>H:/programming/Repository/elcipse-maven/repository</localRepository> <interactiveMode/> <usePluginRegistry/> <offline/> <pluginGroups/> <servers/> <mirrors> <mirror> <id>CN</id> <name>OSChina Central</name> <url>http://maven.oschina.net/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> <profiles/> <activeProfiles/> </settings>
如此之后就开始运行了,无论是新建一个maven空白project还是通过center库中的archetype来创建项目都出现pom.xml错误,各种基础库maven-resources/compiler.jar出错,很是头疼,好一顿搜索研究都没能解决问题,其中重新下载n次库。
4.
解开一个出错的库的lastupdate文件,发现里面出现“Connection Refused”,就更不解了。一来我没有使用代理,网上的解决方法都是配置代理,二来能下载index(近一个G啊)说明网络没问题。到此就真无解了。夜已深,带着遗憾与不解先睡了。
5.
第二天一早起来继续研究,这次打开m2eclipse的debug log,重新index(Windows->Preference->Maven->User Setting->ReIndex),又是半个多小时的等待,一样的错误再次出现,就在要放弃时,突然看到eclipse的log文件出现一些前面没有注意过的错误:
!ENTRY org.eclipse.m2e.logback.appender 4 0 2016-01-17 08:22:56.656 !MESSAGE Unable to update index for CN|http://maven.oschina.net/content/groups/public/: H:\programming\Repository\elcipse-maven\repository\.cache\m2e\1.4.1\08410d2e103567584ef53dbe8846615d\nexus-maven-repository-index.zip (系统找不到指定的文件。)总算是知道原因了,m2eclipse认为下载的index一定是zip格式,而实际上下载的是gz格式的。这应该就是根本原因了。
相应的解决方法是自然就是让m2eclipse不要假设下载的index一定是zip格式,但找了一圈没有看到哪里可改,从代码角度来讲如果是hard code那就无解了,只能重新找库(或自己做一个代理库)支持下载zip格式的index。
6.
最终决定升级JDK, Eclipse和Maven,于是启用已经安装的JRE7,重新下载了Eclipse Marse,而这里自带了Maven,结果就一切顺利了,看来是新版本的m2eclispe修正了这个问题。顺手新建了一个项目导入了Spring包。