Maven應(yīng)該有很多的Best Practise,它所生成的模板應(yīng)該就是一種不錯(cuò)的項(xiàng)目結(jié)構(gòu)。
如何做進(jìn)一步的規(guī)劃和挖掘呢?
對(duì)整個(gè)Maven哲學(xué)的理解...
不錯(cuò)Maven可以直接使用多個(gè)命令的。
如 mvn compile test-compile // compile用于編譯程序代碼,test-compile用于編譯測(cè)試代碼
mvn test 會(huì)自動(dòng)執(zhí)行 compile和test-compile任務(wù)。 (編譯是測(cè)試的前提條件)
而mvn package,會(huì)執(zhí)行測(cè)試
這些任務(wù)依賴(lài)概念,在 Make和Ant中都存在。。。
Maven創(chuàng)建項(xiàng)目模板之后,可以往項(xiàng)目配置里加新的jar包。
content/repositories/central/ 把另外一個(gè)nexus配置為當(dāng)前nexus的代理鏡像,需要設(shè)置的url是某個(gè)具體repository,而不是public里的東西,而在maven里則設(shè)置為public里面的路徑?
使用多個(gè)鏡像,會(huì)下載兩份索引的。查找時(shí),兩個(gè)地方的查詢(xún)匹配結(jié)果都會(huì)被顯示出來(lái)。。。
mvn archetype:create這個(gè)功能挺好用的。這個(gè)命令據(jù)說(shuō)已經(jīng)過(guò)期,官方推薦的命令式 mvn archetype:generate。
還看到可以創(chuàng)建自定義的模板
在nexus中快速定位到自己需要的那個(gè)jar文件,也是需要一定技巧的,使用GAV搜索是一種不錯(cuò)的方法。
在gtalk上向zsq請(qǐng)教過(guò),(.eg)先模糊搜索spring,搜到一些關(guān)鍵字,如groupID為org.springframework,又看到最新的version為2.5.6,這樣再查找,只剩下86個(gè)匹配了,這樣就比較容易選出自己需要的jar包。
090914
被archetype:generate 搞得郁悶了,總是出一些錯(cuò)誤,說(shuō)包找不到。 還是直接用create吧,也只是兩個(gè)參數(shù)嘛: -DgroupId -DartifactId
090928
把Maven和Tomcat項(xiàng)目進(jìn)行整合,之前每次mvn eclipse:eclipse之后,總會(huì)生成一個(gè)target目錄,把所有的class文件都放到target/classes目錄下了,而Tomcat之前是把class文件放到WEB-INF/classes目錄之下的。。。訪問(wèn)頁(yè)面時(shí)報(bào)錯(cuò),說(shuō)找不到類(lèi)。
進(jìn)行如下設(shè)置后,再調(diào)用mvn eclipse:eclipse,也不會(huì)修改classes的路徑了。
<build>
....
<outputDirectory>${basedir}/target/classes</outputDirectory>
</build>
10.16
appfuse的東西怎么下載不過(guò)來(lái)?
Reason: Unable to download the artifact from any repository.
org.codehaus.mojo:appfuse-maven-plugin:pom:2.0.2
dbunit-maven-plugin Build一個(gè)項(xiàng)目時(shí),需要用的的眾多插件?
現(xiàn)在要開(kāi)始領(lǐng)略Maven的復(fù)雜配置了。。。
又在archetype:generate上折騰了一小會(huì)兒(可能是鏡像的緣故,有些包就是下載不了,即使項(xiàng)目可以創(chuàng)建成功,mvn ecilpse:eclipse也會(huì)報(bào)錯(cuò)),該是安心用create的時(shí)候了。
mvn archetype:create -DgroupId=com.demo -DartifactId=App //
剛才創(chuàng)建項(xiàng)目遇到了一個(gè)小錯(cuò)誤,-DArtifactId,這里的A大寫(xiě),所以出錯(cuò)了。
創(chuàng)建web項(xiàng)目需要在后面加其他的參數(shù):mvn archetype:create -DgroupId=disk -DartifactId=disk -DarchetypeArtifactId=maven-archetype-webapp。這個(gè)是用來(lái)指定模板?
創(chuàng)建Tomcat項(xiàng)目時(shí),會(huì)自動(dòng)創(chuàng)建WEB-INF目錄,里面可以放web.xml(這是Servlet規(guī)范所定義的嗎?Servlet規(guī)范確實(shí)可以稱(chēng)之為一個(gè)基礎(chǔ)規(guī)范了,是整個(gè)J2EE的基石)。
高級(jí)用法,可以把一個(gè)Java項(xiàng)目,或者Tomcat項(xiàng)目等,改成一個(gè)由Maven管理依賴(lài)的項(xiàng)目,可以在之后加入pom.xml(注意:里面的artifactId必須和現(xiàn)在的項(xiàng)目名稱(chēng)相同,這樣mvn eclipse:eclipse生成的項(xiàng)目才能被eclipse導(dǎo)入,091023成功操作)