【手把手教你Maven】構建過程
Maven是一款進行 依賴管理、項目構建、信息管理 爲一體的工具。
它不像Make具有複雜的命令、也不像Ant需要手動編寫大量的重複代碼就能進行項目的構建;
還能提供強大的依賴庫管理,避免jar包混亂與衝突;
還可以方便的管理項目的信息、知識產權等內容。
本篇的寫作目的在於幫助那些之前沒有使用過,或者是對maven還沒有太多概念的朋友,學會使用maven,利用maven進行項目的構建。
通過講解Maven的下載、安裝、編寫、執行任務,快速體驗Maven的工作模式與使用技巧…
下載
目前高版本的Eclipse已經集成了Maven,但是考慮到插件的穩定性,還是推薦使用自己安裝的Maven(需要在Eclipse中進行綁定)。
手動安裝需要在官網下載Maven,目前最新的版本是3.3.9:http://maven.apache.org/download.cgi
一般windows下的用戶下載這個zip就可以了,如果要學習源碼,可以下載src那版的。
安裝
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實戰教程