maven學習

1. Maven的出發點

在進行軟件開發的過程中,無論什麼項目,採用何種技術,使用何種編程語言,我們 都要重複相同的開發步驟:編碼,測試,打包,發佈,文檔。實際上這些步驟是完全重複性的工作。那爲什麼讓軟件開發人員去重複這些工作?開發人員的主要任務 應該是關注商業邏輯並去實現它,而不是把時間浪費在學習如何在不同的環境中去打包,發佈,。。。

Maven正是爲了將開發人員從這些任務中解脫出來而誕生的。


2. Maven能做什麼?

Maven是由早期爲Jakarta Turbine定製的構建工具發展而來的,現在成爲了一個獨立的軟件項目管理工具。Maven能夠:

1)理解並管理整個軟件開發週期,重用標準的構建過程,比如:編譯,測試,打包等。同時Maven還可以通過相應的元數據,重用構建邏輯到一個項目。

2)Maven負責整個項目的構建過程。開發人員只需要描述項目基本信息在一個配置文件中:pom.xml。也就是說,Maven的使用者只需要回答“What”而不是“How”。


3. Maven並不只是一個構建工具,她還可以提供:

1)聲明式依賴性管理

2)集中的組件庫管理

3)文檔的自動生成

4)報告的自動生成

4. Maven設計原則

1)Convention Over Configuration (約定優於配置)。在現實生活中,有很多常識性的東西,地球人都知道。比如說:如何過馬路(紅燈停綠燈行),如何開門,關門等。對於這些事情,人們已經有了默認的約定。

在軟件開發過程中,道理也是類似的,如果我們事先約定好所有項目的目錄結構,標 準開發過程(編譯,測試,。。。),所有人都遵循這個約定。軟件項目的管理就會變得簡單很多。在現在流行的很多框架中,都使用了這個概念,比如EJB3和Ruby on Rails。在Maven中默認的目錄結構如下:


由上圖可以看出以下幾個標準的Maven目錄:

  • src:源代碼目錄。所有的源代碼都被放在了這個目錄下。在這個目錄下又包括了:

1) main:所有的源代碼放在這裏。對於Java項目,還有一個下級子目錄:java. 對於Flex項目則是flex,。。。

2) test:所有的單元測試類放在這裏。

  • target:所有編譯過的類文件以及生成的打包文件(.jar, .war, ...)放在這裏。

2)Reuse Build Logic (重用構建邏輯):Maven把構建邏輯封裝到插件中來達到重用的目的。這樣在Maven就有用於編譯的插件,單元測試的插件,打包的插件,。。。Maven可以被理解成管理這些插件的框架。
3)Declarative Execution (聲明式執行):Maven中所有的插件都是通過在POM中聲明來定義的。Maven會理解所有在POM中的聲明,並執行相應的插件。

5. 創建一個Maven項目

1) 下載Maven:http://maven.apache.org/

2) 解壓縮下載的zip文件到本地目錄下,比如:D:\Maven

3) 添加D:\Maven\bin到環境變量PATH中

4) 在命令行下運行:

mvn -version 或者 mvn -v

你應該看到如下圖所示的Maven版本號:

5) 運行如下命令創建一個Maven項目:

mvn archetype:create -DgroupId=net.jianxi.tutorials
                                    -DartifactId=helloworld
                                    -DpackageName=net.jianxi.tutorials 

該項目的目錄結構如下圖所示:

現在就可以運行一些Maven命令了

編譯: mvn compile

單元測試: mvn test

構建並打包: mvn package

清理: mvn clean

安裝 mvn clean install


原文來自:http://www.cnblogs.com/dcba1112/archive/2011/05/01/mave.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章