前言
Maven 是一個專案構建和管理工具,利用它可以對 JAVA 專案進行構建和依賴管理。
Maven 採用專案物件模型 POM(Project Object Model)來管理專案。
Maven 的主要工作就是用來解析一些 XML 文件、管理生命週期與外掛。
Maven 被設計成將主要的職責委派給一組 Maven 外掛,這些外掛可以影響 Maven 生命週期,提供對目標的訪問。
0x01 Maven環境配置
1. JDK安裝以及系統要求
Maven 是一個基於 Java 的工具,所以要做的第一件事情就是安裝 JDK(自行百度)。
系統要求
![圖片](https://i.iter01.com/images/67085c677362793c2f4f335b1e744f40172805534e015db0eb0af9c3e99cb399.png)
2. Maven安裝及環境變數配置
Mevan下載:http://maven.apache.org/download.cgi
![圖片](https://i.iter01.com/images/550d4c30654bd4f5f6f25918c8fba44d7dd0fa1b222f5245354a943b670cb0d5.png)
對應平臺下載Maven包及解壓路徑
![圖片](https://i.iter01.com/images/3d96d1c9dedd9f841d1eb96ae2968d75ebb36a7471ef884aad7394c9c26bb0f7.png)
設定 Maven 環境變數
Windows
新建系統變數 MAVEN_HOME,變數值:E:Mavenapache-maven-3.3.9
![圖片](https://i.iter01.com/images/60750c415b3a4676aaedab17b1fab2ae3b1e0f2189fa084e3c0e732859a311b0.png)
編輯系統變數Path,新增變數值:;%MAVEN_HOME%bin
![圖片](https://i.iter01.com/images/e5a4807001bb8317fa15b3138586ec491d89f60f8b54458ebae45863ef5d01a5.png)
Linux
下載解壓:
# wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
# tar -xvf apache-maven-3.3.9-bin.tar.gz
# sudo mv -f apache-maven-3.3.9 /usr/local/
編輯 /etc/profile 檔案 sudo vim /etc/profile,在檔案末尾新增如下程式碼:
export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=${PATH}:${MAVEN_HOME}/bin
儲存檔案,並執行如下命令使環境變數生效:
在控制檯輸入如下命令,如果能看到 Maven 相關版本資訊,則說明 Maven 已經安裝成功:
# source /etc/profile
# mvn -v
Mac
下載解壓:
$ curl -O http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
$ tar -xvf apache-maven-3.3.9-bin.tar.gz
$ sudo mv -f apache-maven-3.3.9 /usr/local/
編輯 /etc/profile 檔案 sudo vim /etc/profile,在檔案末尾新增如下程式碼:
export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=${PATH}:${MAVEN_HOME}/bin
儲存檔案,並執行如下命令使環境變數生效:
$ source /etc/profile
在控制檯輸入如下命令,如果能看到 Maven 相關版本資訊,則說明 Maven 已經安裝成功:
$ mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: /usr/local/apache-maven-3.3.9
Java version: 1.8.0_31, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: ISO8859-1
OS name: "mac os x", version: "10.13.4", arch: "x86_64", family: "mac"
0x02 Maven引入外部依賴
專案結構
![圖片](https://i.iter01.com/images/4586712c38cf4dda971a28875f9b596543fa2befbf9610817366ca8e099af49e.png)
如果我們的專案需要引入外部依賴時,可以在pom.xml檔案中新增依賴
eg:sevlet的依賴
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
完整的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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>javaweb-03-jsp</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>servlet-01</module>
</modules>
<dependencies>
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>
在專案中使用到的依賴包在生成war時會在WEB-INF資料夾下的lib檔案匯入使用
![圖片](https://i.iter01.com/images/a363600378f8a7920a191d901c2698b38a0c89ef96f49e1137e838f95c2bcd6f.png)
依賴庫:https://mvnrepository.com/