相信maven1 大家都已經(jīng)很熟悉了,具體maven能做什么,就不詳細(xì)說(shuō)了。個(gè)人覺(jué)得maven在開(kāi)源項(xiàng)目中用的還是比較多的,公司內(nèi)部,就不太清楚了。我以前的公司用過(guò)一段時(shí)間,不過(guò)后來(lái)就沒(méi)有下文了。
與maven1 相比,maven2可算是幾乎重寫(xiě)了,不過(guò)從速度來(lái)說(shuō)應(yīng)該更快。 主要的幾個(gè)新特性包括:(詳細(xì)參考http://www.ibm.com/developerworks/cn/opensource/os-maven2/index.html) 1. 更快、更簡(jiǎn)單 速度方面可以比上ant了 2. 更少的配置文件 現(xiàn)在的配置文件只剩下了settings.xml和pom.xml了。 3. Plugin語(yǔ)言更換 語(yǔ)言開(kāi)始支持java,BeanShell和ant 4. 提供了預(yù)定義的模版 這點(diǎn)是最有幫助的,用戶(hù)可以自己定義自己的項(xiàng)目模版了,就像用appfuse一樣生成項(xiàng)目結(jié)構(gòu) 5. 生命周期的引入 在Maven2中有了明確的生命周期概念,而且都提供與之對(duì)應(yīng)的命令,使得項(xiàng)目構(gòu)建更加清晰明了。 6. 新增Dependency Scope 這點(diǎn)也比較重要,有些用于test范圍的包,可以不用加入依賴(lài)了 7. 傳遞依賴(lài),簡(jiǎn)化依賴(lài)管理 這是最為方便的,可以省了很多配置。如a 依賴(lài) b,b 依賴(lài)c 默認(rèn) a也會(huì)依賴(lài) c。但是也會(huì)帶來(lái)隱患,如版本沖突。不過(guò)maven 也已經(jīng)考慮到了,可以使用exclusions來(lái)排除相應(yīng)的重復(fù)依賴(lài) 介紹了那么多,現(xiàn)在切入正題,開(kāi)始maven2 之旅: 首些下載需要的工具: maven2: http://maven./download.html 最主要的 maven-proxy:用來(lái)代理repository,使用本地庫(kù)代替maven2的遠(yuǎn)程庫(kù) http://maven-proxy./ continuum:一個(gè)不錯(cuò)的持續(xù)整合工具,用于自動(dòng)build。支持ant,maven http://maven./continuum/ svn:版本控制工具相信都已經(jīng)配置了。 maven 用于eclipse的插件 ,在maven主站有下載,不錯(cuò)的插件。當(dāng)然idea也有相應(yīng)的插件 最后,http,服務(wù)器是必不可少的。用于內(nèi)部開(kāi)發(fā)使用。 可以使用apache ,或者jetty http://www./ 安裝: 安裝maven2很簡(jiǎn)單,把下載來(lái)的maven包解開(kāi)就行了。(目前我的配置都在win2003上,還沒(méi)有應(yīng)用于linux,所有所有的配置都針對(duì)windows).增加相應(yīng)的環(huán)境變量m2_home=maven2的安裝目錄,不要忘了設(shè)置java_home的目錄。另外在path中增加%m2_home%\bin;可以直接在命令行下面使用mvn。 其他工具的安裝在后續(xù)的文章會(huì)介紹。 開(kāi)始第一個(gè)mvean2項(xiàng)目: mvn archetype:create -DgroupId=com.mycompany.app \ -DartifactId=my-app 簡(jiǎn)單介紹一下 groupId相當(dāng)于你的組織,如同org.springframework,會(huì)轉(zhuǎn)化為相應(yīng)得本地路徑 artifactId,你主要的jar包名稱(chēng),也就是你要打成的jar 名稱(chēng)。 編譯應(yīng)用資源 mvn complile 編譯相應(yīng)的jave 文件 編譯測(cè)試類(lèi)以及運(yùn)行測(cè)試類(lèi) mvn test 運(yùn)行測(cè)試類(lèi) 如果只想編譯test,執(zhí)行 mvn test-compile 打包和安裝你的本地庫(kù) 打包: mvn package 安裝: mvn install 創(chuàng)建web site mvn site 清除所有輸出 mvn clean 創(chuàng)建相關(guān)的ide文件 mvn idea:idea 或者 mvn eclipse:eclipse 順便說(shuō)一下,maven2 是有生命周期這一概念的,也就是說(shuō)如果你執(zhí)行package,相應(yīng)的以前步驟,如compile,test等都會(huì)自動(dòng)執(zhí)行。 剛開(kāi)始執(zhí)行會(huì)比較慢,需要從maven2遠(yuǎn)程庫(kù)中下載所有的文件到本地。如果你的本地沒(méi)有相應(yīng)的依賴(lài)包,則每次maven都會(huì)去遠(yuǎn)程下載,所以配置一個(gè)鏡像庫(kù)就比較重要了。 另外介紹一下主要的參考資料: mavn2 主站:主要的pom和settings.xml參考資料 Better Builds with Maven http://www./m2book_download.jsp 不錯(cuò)的書(shū),主要通過(guò)例子介紹??上Ф际荅文的,花點(diǎn)時(shí)間還是值得的。 下一個(gè)主題,會(huì)說(shuō)一下maven2的主要配置。 |
|