Maven是一款進行 依賴管理、項目構建、信息管理 爲一體的工具。java
它不像Make具備複雜的命令、也不像Ant須要手動編寫大量的重複代碼就能進行項目的構建;apache
還能提供強大的依賴庫管理,避免jar包混亂與衝突;windows
還能夠方便的管理項目的信息、知識產權等內容。maven
本篇的寫做目的在於幫助那些以前沒有使用過,或者是對maven尚未太多概念的朋友,學會使用maven,利用maven進行項目的構建。工具
經過講解Maven的下載、安裝、編寫、執行任務,快速體驗Maven的工做模式與使用技巧...單元測試
目前高版本的Eclipse已經集成了Maven,可是考慮到插件的穩定性,仍是推薦使用本身安裝的Maven(須要在Eclipse中進行綁定)。學習
手動安裝須要在官網下載Maven,目前最新的版本是3.3.9:http://maven.apache.org/download.cgi測試
通常windows下的用戶下載這個zip就能夠了,若是要學習源碼,能夠下載src那版的。ui
1 首先須要安裝JDK,在命令行中輸入java -version驗證版本:編碼
2 而後解壓下載好的壓縮包:
3 配置環境變量
在「環境變量」中配置:
M2_HOME:xxxx/apache-maven-3.3.9 在path中添加:";%M2_HOME%/bin"
4 在命令行中輸入 mvn -v測試
若是使用過Ant都知道Ant是經過build.xml執行構建任務的,Maven中是經過pom.xml來執行任務。
POM,project object model,即項目對象模型,它經過這個pom.xml描述一個項目的構建以及信息。
<?<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.xinoo.test</groupId> <artifactId>first-maven</artifactId> <version>1.0-SNAPSHOT</version> <name>First Maven Project</name> </project>
第一行指定了文檔的XML版本和編碼
第二行即每一個pom.xml的核心元素——project
project下面有幾個子元素,這幾個子元素通常是每一個項目都會使用到的:
1 modelVersion 這個元素指定了POM的版本,Maven2或者Maven3 都只能是4.0.0
2 groupId 是項目組的ID,通常是com.公司組織名.項目名
3 artifactId 是該項目在項目組中的ID,好比當前的項目是項目組的一個代理項目,就能夠叫作myproxy
4 version 是項目的版本號,用於維護項目的升級和發佈
5 name 通常沒有實際的用處,只是用於標識該項目
比較重要的參數是 groupId、artifactId、version,這三個屬性肯定惟一的一個項目。
通常的Maven項目會包含這樣一個目錄樹:
project |-src--main--java--你的源代碼 | |--test----java--你的單元測試代碼 |-target--編譯出的文件和jar包 |-pom.xml--項目信息以及任務定義
所以咱們在上面的pom.xml同級目錄中,建立
src/main/java/com/xingoo/test/firstmaven 文件夾
而後再該文件夾中建立HelloWorld.java
package com.xingoo.test.firstmaven; public class HelloWorld{ public String sayHello(){ return "Hello Maven"; } public static void main(String[] args){ System.out.println(new HelloWorld().sayHello()); } }
而後再pom.xml所在的目錄中運行mvn clean compile命令:
會發現目錄中多了一個target文件夾,文件夾中增長了兩個文件夾:
其中classes中是java編譯出的class文件、maven-status是依賴的compile插件。
【1】最後的任務執行樣例:百度雲盤文件mvn1127.zip
【2】《Maven實戰》:百度雲盤文件Maven實戰教程