前先後後搞了3天,先是裝插件,我發現最近,新下的eclipse3.7在market裏裝m2e插件老是報missing slf4j.jar的錯誤,因而我google了找了個m2e離線包,以link的方式安裝。接着,各類奇葩的問題便出現了。html
首先在Mac10.7下(mac10.7)導入公司的maven項目後發現老是missing artifact,但我明明把缺乏的包從公司拷過來的說。java
後來通過google baidu,查看了本身eclipse,java的classpath,(Preference -> Java -> Build Path -> Classpath Variables) :app
個人M2_REPO 的值居然是eclipse
/User/current_user/coding/eclipse/Eclipse.app/Contents/MacOS/~/.m2/repositorymaven
也就是說,個人eclipse的m2e插件將個人倉庫定位錯了,幫我定位到eclipse裏了。ui
但個人.m2/settings.xml 和 maven_home/conf/settings.xml裏的<localRepository>節點沒有寫錯,確實是寫了~/.m2/repository,example就是這麼寫的。而後我想着索性將~寫成/User/current_user/.m2/repository 結果可想而知,M2_REPO變成了google
/User/current_user/coding/eclipse/Eclipse.app/Contents/MacOS/User/current_user/.m2/repositoryspa
奇怪的是,我在osc上提問時,也有個10.7的大神但他卻很正常,沒發生我這種奇葩狀況。。.net
不過今早把問題解決了,若是和我同樣用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