原創文章,禁止轉載!
一、什麼是Maven
Apache Maven是一個軟件項目管理和綜合工具。基於項目對象模型(POM)的概念,Maven可以從一箇中心資料片管理項目構建,報告和文件。
Maven項目的結構和內容在一個XML文件中聲明,pom.xml 項目對象模型(POM),這是整個Maven系統的基本單元。
Maven提供了開發人員構建一個完整的生命週期框架。開發團隊可以自動完成項目的基礎工具建設,Maven使用標準的目錄結構和默認構建生命週期。
Maven作爲一個構建工具,不僅幫助我們自動化構建,還能抽象構建過程提供構建任務實現;它跨平臺,對外提供了一致的操作接口。
二、爲什麼需要Maven
在多個開發團隊環境時,Maven可以設置按標準在非常短的時間裏完成配置工作。
Maven處理編譯,分配,文檔,團隊協作和其他任務的無縫連接。
Maven增加可重用性並負責建立相關的任務。
Maven是跨平臺的,無論在Windows、Linux、或者是Mac上,都可以使用同樣的命令。
Maven最大化地消除了構建的重複,抽象了構建生命週期,並且爲絕大部分的構建任務提供了已實現的插件。
Maven可以幫助我們標準化構建過程。
Maven幫助我們管理原本散落在項目中各個角落的項目信息。
Maven提供了一個免費的中央倉庫,在其中可以找到任何流行的開源類庫。
Maven對於項目目錄結構、測試用例命名方法等內容都有既定的規則,可以說是約定優於配置。
三、Maven的安裝與配置
1.檢查JDK是否安裝
2.下載Maven
請到Maven官網按照自己的需求自行下載。
3.本地安裝
(1)將安裝文件解壓到指定目錄
這裏的安裝目錄是: E:\apache-maven-3.2.5
(2)設置環境變量
右鍵“計算機”,選擇“屬性”,之後點擊“高級系統設置”,點擊“環境變量”,來設置環境變量,有以下系統變量需要配置:
新建系統變量 M2_HOME 變量值:E:\apache-maven-3.2.5(安裝文件的指定目錄)
編輯系統變量 Path 添加變量值: %M2_HOME%\bin(多個值之間用分號隔開)
(3)驗證是否配置成功
四、Maven入門(手動創建一個hello-world項目)
1.編寫pom.xml
首先創建一個hello-world的文件夾,打開文件夾,新建一個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.mvn.mvnbook</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven Hello World Project</name>
</project>
2.編寫主代碼
Maven主代碼一般放在src/main/java目錄下,在這目錄下新建com/mvn/mvnwork/hello-world文件夾,在這個文件夾下新建HelloWorld.java
代碼內容如下:
package com.mvn.mvnbook.helloworld;
public class HelloWorld{
public String sayHello(){
return "HelloMaven!";
}
public static void main(String[] args){
System.out.print(new HelloWorld().sayHello());
}
}
代碼編寫完畢後,使用Maven進行編譯
打開cmd,在項目根目錄下位置輸入mvn clean compile
3.編寫測試代碼
同樣在創建src/test/java目錄,在這目錄下新建com/mvn/mvnwork/hello-world文件夾,在這個文件夾下新建HelloWorldTest.java
(1)首先給項目一個Junit依賴,修改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.mvn.mvnbook</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven Hello World Project</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
(2)編寫HelloWorldText.java
package com.mvn.mvnbook.helloworld;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class HelloWorldTest{
@Test
public void testSayHello(){
HelloWorld helloWorld = new Helloworld();
String result = helloWorld.sayHello();
assertEquals("HelloMaven!",result);
}
}
(3)調用Maven進行測試
運行 mvn clean test
4.打包和運行
(1)打包:Hello-world項目中的pom沒有指定打包的類型,默認使用的是.jar格式,簡單使用mvn clean package進行打包,可以看到如下輸出:
類似的,Maven 會在打包之前使用編譯測試等操作。會在target中出現一個根據artifact-version.jar命名的jar包
(2)爲了能讓其他的Maven項目直接引用這個jar,需要一個安裝的步驟,執行mvn clean install:
(3)爲了生成可執行的jar文件,需要在pom.xml中配置maven-shade-plugin插件
Pom.xml中的代碼如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<!-- <resource>META-INF/spring.handlers</resource> -->
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.mvn.mvnbook.helloworld.HelloWorld</mainClass>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<!-- <resource>META-INF/spring.schemas</resource> -->
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
執行mvn clean install:
在項目根目錄下執行hello-world-1.0-SNAPSHOT.jar文件
執行命令爲:java -jar target\hello-world-1.0-SNAPSHOT.jar,即可得到HelloMaven!的輸出結果。
五、使用eclipse新建一個Maven項目
1.檢查eclipse的maven插件是否安裝成功
如果沒有安裝請在此添加:1)點擊Installations –> add 選擇maven安裝目錄,這裏我的Maven安裝目錄爲E:\apache-maven-3.2.5,選擇你的Maven安裝目錄,並點擊確定, 之後可以點擊Apply,點擊OK,即可完成。
2)然後,我們在Maven的配置界面,設置User Settings。
Global Settings選擇maven 安裝目錄下conf文件夾下的settings.xml,這裏我的Maven安裝目錄爲E:\apache-maven-3.2.5\conf\settings.xml(這是全局settings)(我的目錄是用戶的settings,配置時可自行選擇,不過推薦使用用戶範圍的settings),選擇你的Maven安裝目錄,檢查Local Repository 項,如果爲D:/maven/repository則配置成功,否則重新配置上一步。
2.創建Maven項目
1)我們在Eclipse菜單欄中點擊File->New->Other->Maven,在彈出的對話框中會看到,如下圖所示,點擊next:
2)勾選Create a simple project(skip archetype selection),然後點擊next,如下圖:
3)填寫Group id和Artifact id,Version默認,Packaging默認爲jar,Name,Description選填,其他的不填。(如果有父級的項目,就填寫下面父級項目的Group id、Artifact id等)
4)點擊finish後,eclipse會生成如下項目:
5)如果我們想創建一個Maven的web項目,把第三步的Packaging的類型改爲war,之後點擊Finish即可,如圖所示:
6)至此,maven項目創建完成。