Mac 10.7 使用Maven 小记

前前后后搞了3天,先是装插件,我发现最近,新下的eclipse3.7在market里装m2e插件总是报missing slf4j.jar的错误,于是我google了找了个m2e离线包,以link的方式安装。接着,各种奇葩的问题便出现了。

首先在Mac10.7下(mac10.7)导入公司的maven项目后发现总是missing artifact,但我明明把缺少的包从公司拷过来的说。

后来经过google baidu,查看了自己eclipse,java的classpath,(Preference -> Java -> Build Path -> Classpath Variables) :

我的M2_REPO 的值竟然是

/User/current_user/coding/eclipse/Eclipse.app/Contents/MacOS//.m2/repository

也就是说,我的eclipse的m2e插件将我的仓库定位错了,帮我定位到eclipse里了。

但我的.m2/settings.xml 和 maven_home/conf/settings.xml里的<localRepository>节点没有写错,确实是写了~/.m2/repository,example就是这么写的。然后我想着索性将~写成/User/current_user/.m2/repository 结果可想而知,M2_REPO变成了

/User/current_user/coding/eclipse/Eclipse.app/Contents/MacOS/User/current_user/.m2/repository

奇怪的是,我在osc上提问时,也有个10.7的大神但他却很正常,没发生我这种奇葩情况。。

不过今早把问题解决了,如果和我一样用mac也发生这种情况的话,就吧2个settings.xml的<localRepository>节点注释掉吧!不写的话,仓库就默认定位到~/.m2里了,缺点是无法自定义仓库地址了。

顺便做个将公司代码带回家遇到问题的总结:

1,最好将maven_home/conf 和 本地仓库的 settings.xml保证一样,因为,至少我遇到了maven2种插件,有的以maven_home/conf 的settings.xml为准,有的以本地仓库的为准。

2,如果公司有自己的maven私服的话,jar包的pom里的地址是指向私服地址的。所以必须吧公司的settings.xml给拷回来,主要是为了配置原来公司私服的profile地址,以免从公司拷过来的jar包因为没有其源地址而造成eclipse对明明存于仓库的jar包而报missing artifact 的错误。 这种jar包的本地仓库一般会有m2e-lastUpdated.properties 这种文件,以证明此jar包来自私服。。

发现一篇很好的Maven入门文章:

http://www.blogjava.net/jiangshachina/archive/2006/09/01/67080.html 

这是签名?
原文地址:https://www.cnblogs.com/Lelpuchcr/p/3175622.html