Maven教程初级篇01: 简介
1. Maven的出發(fā)點
在進(jìn)行軟件開發(fā)的過程中,無論什么項目,采用何種技術(shù),使用何種編程語言,我們都要重復(fù)相同的開發(fā)步驟:編碼,測試,打包,發(fā)布,文檔。實際上這些步驟是完全重復(fù)性的工作。那為什么讓軟件開發(fā)人員去重復(fù)這些工作?開發(fā)人員的主要任務(wù)應(yīng)該是關(guān)注商業(yè)邏輯并去實現(xiàn)它,而不是把時間浪費(fèi)在學(xué)習(xí)如何在不同的環(huán)境中去打包,發(fā)布,。。。
Maven正是為了將開發(fā)人員從這些任務(wù)中解脫出來而誕生的。
2. Maven能做什么?
?Maven是由早期為Jakarta Turbine定制的構(gòu)建工具發(fā)展而來的,現(xiàn)在成為了一個獨(dú)立的軟件項目管理工具。Maven能夠:
1)理解并管理整個軟件開發(fā)周期,重用標(biāo)準(zhǔn)的構(gòu)建過程,比如:編譯,測試,打包等。同時Maven還可以通過相應(yīng)的元數(shù)據(jù),重用構(gòu)建邏輯到一個項目。
2)Maven負(fù)責(zé)整個項目的構(gòu)建過程。開發(fā)人員只需要描述項目基本信息在一個配置文件中:pom.xml。也就是說,Maven的使用者只需要回答“What”而不是“How”。
3. Maven并不只是一個構(gòu)建工具,她還可以提供:
1)聲明式依賴性管理
2)集中的組件庫管理
3)文檔的自動生成
4)報告的自動生成
4. Maven設(shè)計原則
?1)Convention Over Configuration (約定優(yōu)于配置)。在現(xiàn)實生活中,有很多常識性的東西,地球人都知道。比如說:如何過馬路(紅燈停綠燈行),如何開門,關(guān)門等。對于這些事情,人們已經(jīng)有了默認(rèn)的約定。
在軟件開發(fā)過程中,道理也是類似的,如果我們事先約定好所有項目的目錄結(jié)構(gòu),標(biāo)準(zhǔn)開發(fā)過程(編譯,測試,。。。),所有人都遵循這個約定。軟件項目的管理就會變得簡單很多。在現(xiàn)在流行的很多框架中,都使用了這個概念,比如EJB3和Ruby on Rails。在Maven中默認(rèn)的目錄結(jié)構(gòu)如下:
由上圖可以看出以下幾個標(biāo)準(zhǔn)的Maven目錄:
- src:源代碼目錄。所有的源代碼都被放在了這個目錄下。在這個目錄下又包括了:
????????? 1) main:所有的源代碼放在這里。對于Java項目,還有一個下級子目錄:java. 對于Flex項目則是flex,。。。
????????? 2) test:所有的單元測試類放在這里。
- target:所有編譯過的類文件以及生成的打包文件(.jar, .war, ...)放在這里。
2)Reuse Build Logic (重用構(gòu)建邏輯):Maven把構(gòu)建邏輯封裝到插件中來達(dá)到重用的目的。這樣在Maven就有用于編譯的插件,單元測試的插件,打包的插件,。。。Maven可以被理解成管理這些插件的框架。
3)Declarative Execution (聲明式執(zhí)行):Maven中所有的插件都是通過在POM中聲明來定義的。Maven會理解所有在POM中的聲明,并執(zhí)行相應(yīng)的插件。
?
5. 創(chuàng)建一個Maven項目
1) 下載Maven:http://maven.apache.org/
2) 解壓縮下載的zip文件到本地目錄下,比如:D:\Maven
3) 添加D:\Maven\bin到環(huán)境變量PATH中
4) 在命令行下運(yùn)行:
mvn?-version? 或者 mvn -v
你應(yīng)該看到如下圖所示的Maven版本號:
5) 運(yùn)行如下命令創(chuàng)建一個Maven項目:
?
mvn archetype:create -DgroupId=net.jianxi.tutorials-DartifactId=helloworld
-DpackageName=net.jianxi.tutorials
該項目的目錄結(jié)構(gòu)如下圖所示:
?
現(xiàn)在就可以運(yùn)行一些Maven命令了
編譯: mvn compile
單元測試: mvn test
構(gòu)建并打包: mvn package
清理: mvn clean
http://www.cnblogs.com/bluesfeng/archive/2010/09/06/1819585.html
?
總結(jié)
以上是生活随笔為你收集整理的Maven教程初级篇01: 简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Know more about RAC
- 下一篇: ABAP:参数输入屏幕SELECTION