Maven是基於項目對象模型(POM),能夠經過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。Maven主要服務於基於java平臺的項目構建、依賴管理和項目信息管理,不管是小型的開源類庫項目,仍是大型的企業級應用,maven都能大顯身手。java
置於maven的安裝過程及在eclipse裏面配置maven,請看我在開源中國總結的博客:web
http://my.oschina.net/u/1540325/blog/493922apache
1》在maven在dos下的使用構建java項目看個人看的開源中國的博客:tomcat
http://my.oschina.net/u/1540325/blog/495823eclipse
2》在eclipse下使用maven構建項目 maven
1)建立簡單Maven項目工具
點擊Eclipse菜單欄File->New->Ohter->Maven獲得以下圖所示對話框:測試
選中Maven Project並點擊Next,到下一個對話框ui
繼續點擊Next獲得以下對話框spa
如圖示操做,選擇maven-archetype-quickstart,點擊Next,獲得以下圖:
按圖示填寫好groupId, artfactId,version等信息,點擊Finish。
簡單解釋一下 Group Id、Artifact Id、Version 和 Package:
groupId:group 翻譯成中文就是組、集團的意識,groupId就是這樣一個組或集團的ID標識,就拿 Apache 來講好了,Apache 你們都不陌生吧,
Apache 官網上有很是多的項目,每一個項目裏面確定能找獲得 org.apache.xxxx,而 org.apache 就是這裏說的 groupId
artifactId:仍是拿 Apache 來講,Apache 官網上有很是多的項目,而每一個項目的名字就是這裏的 artifactId,換句話說,artifactId 就是你的項目名
version:這個就沒有什麼好解釋的了吧,是項目版本的意思
package:這個也沒什麼好說的,就是 groupId.artifactId,建立的時候會自動幫你補全,若是沒有自動幫你補全就本身手動敲上去
由此咱們成功建立了一個簡單的Maven項目,項目結構如圖所示
2)建立Maven web項目
操做跟建立簡單Maven項目相似,點擊Eclipse菜單File->New->Other->Maven->Maven Project
在選擇maven-archetype的界面進行以下操做:
點擊Next,填寫好相應的groupId,artifactId,version等信息,點擊Finish
獲得的Maven web項目結構以下圖所示
說明一下目錄結構
src/main/resources:用來存放資源文件(默認會幫你建立這個資源文件夾)
src/main/java:用來存放 java 源碼文件(須要本身手動建立)
src/main/test:用來存放測試代碼(須要本身手動建立,也有人習慣命名爲:src/test)@
target:是用來存放 Maven 編譯好的字節碼的地方
Maven Dependencies:裏面放的是 maven 管理的 jar 文件
運行maven管理的項目,
. 3)運行Maven命令
右擊項目,點擊Run as,以下圖:
便可看到有不少現有的maven命令,點擊便可運行,並在控制檯能夠看到運行信息
若是你想運行的maven命令在這裏沒有找到,點擊Maven build建立新的命令,操做以下圖所示:
以下圖填入Maven命令,點擊Run便可
新增的maven命令能夠經過以下方式找到,並再次運行:
通常運行maven install就可了。若是是java項目會生成jar包,若是是java web項目會生成war包,
而後經過tomcat就能夠把java web運行起來了
1.2 Maven的編譯流程
其實咱們通常使用mvn install命令直接一次把項目打包,不用執行其他的mvn compile ,mvn package 之類的命令,由於執行mvn install命令,會把這幾個命令都給執行了,如今咱們能夠看一下mvn intall作了哪些事:
initialize 初始化一些環境
process-sources處理項目主資源文件,通常來講是對/src/main/resources目錄的內容進行變量替換等工做,複製到項目的主classpath目錄中。
compile 編譯項目的主源碼,通常就是src/main/java
process-test-sources處理項目測試資源文件
test-compile編譯項目的測試代碼
package把編譯好的代碼打包
install 將安裝包安裝到maven本地倉庫,供本地其餘maven項目使用