初學(xué)maven,遇到不少問(wèn)題,記錄下來(lái),呵呵,依然是備忘兼共享。
一. The pulgin 'org.apache.maven.plugins:
maven-archetype-plugin' does
not exist or valid version could be found
安裝官方標(biāo)準(zhǔn)的安裝方式(http://maven.apache.org/download.html#Installation)安裝完畢,運(yùn)行mvn --version沒(méi)有問(wèn)題。
然后按照"maven in 5 minutes"(http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html) 的第一個(gè)例子,執(zhí)行
mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app
結(jié)果報(bào)錯(cuò):
The pulgin 'org.apache.maven.plugins:
maven-archetype-plugin' does
not exist or valid version could be found
......
google了一下發(fā)現(xiàn)解決方案,原來(lái)是網(wǎng)絡(luò)配置的問(wèn)題,如果使用代理上網(wǎng)必須修改maven的配置文件加入相應(yīng)的代理信息。
打開(kāi)文件 maven/conf/settings.xml,找到<proxies>,將原來(lái)注釋掉的<proxy>打開(kāi),修改相應(yīng)的信息即可。
注意:
1.)<host>iproxy-sh.cn.ao.ericsson.se</host> 這里不要用"http://"開(kāi)頭,否則會(huì)無(wú)法連接
2. ) 如果用戶名、密碼不需要,可以刪除<username><password>,設(shè)置為空也行。
二. artifactory私服安裝問(wèn)題
對(duì)于單機(jī)來(lái)說(shuō),maven從遠(yuǎn)程倉(cāng)庫(kù)取jar包等資源是完全合理的。但是如果一個(gè)team甚至一個(gè)公司,每個(gè)人的maven都從遠(yuǎn)程倉(cāng)庫(kù)取,那么花在文件下載上的時(shí)間就太多了,而且完全沒(méi)有必要。因此設(shè)置一個(gè)開(kāi)發(fā)團(tuán)隊(duì)共享的Maven2的私服就必不可少了。
Maven2的私服,當(dāng)然首選artifactory。
跑到artifactory的官網(wǎng),down下來(lái)最新的1.30-beta1,安裝非常簡(jiǎn)單,windows下一個(gè)bat文件直接啟動(dòng)。之后修改maven配置,加入
<repositories>
<repository>
<id>central</id>
<url>http://localhost:8081/artifactory/repo</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>snapshots</id>
<url>http://localhost:8081/artifactory/repo</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://localhost:8081/artifactory/plugins-releases</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>snapshots</id>
<url>http://localhost:8081/artifactory/plugins-snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
但是發(fā)現(xiàn)執(zhí)行maven命令時(shí),maven完全沒(méi)有從私服上取文件,還是到默認(rèn)的maven官網(wǎng)去取了。反復(fù)修改都不行,最后發(fā)現(xiàn)問(wèn)題可能出現(xiàn)在artifactory上:登錄artifactory的控制臺(tái)后,點(diǎn)Virtual Repositories --》 repo 后直接報(bào)錯(cuò),頁(yè)面拋ArrayIndexOutOfBoundsException!看url是http://localhost:8081/artifactory/repo/,這個(gè)不就是上面配置的地址嗎?都拋異常了,讓maven怎么取文件,找到問(wèn)題了,雖然莫名其妙,試著刪除后重新安裝還是這個(gè)錯(cuò)誤。暈倒,不清楚哪里出的問(wèn)題,更不知該怎么改。看看版本是beta1,而且下載數(shù)量只有幾十,想想可能是新版本的bug。
換成1.2.5final,一切都正常了。
我想應(yīng)該是artifactory 1.3.0-beta1的bug吧。
三.
maven的路徑變量M2_REPO
使用mvn eclipse:eclipse命令生成eclipse project后,在eclipse中impot進(jìn)來(lái),編譯出錯(cuò),原來(lái)是maven使用到一個(gè)名為“
M2_REPO”的路徑變量。
google了一下,
eclipse中設(shè)置變量M2_REPO的方式是:
Window -> Preferences -> Java -> Build Path -> Classpath Variables,NewName 填寫"M2_REPO",路徑為你的本地的maven類庫(kù)地址.
設(shè)置后重新編譯順利通過(guò),這樣導(dǎo)入eclipse項(xiàng)目就完成了。