前言
Maven 是一個專案構建和管理工具,利用它可以對 JAVA 專案進行構建和依賴管理。
Maven 採用專案物件模型 POM(Project Object Model)來管理專案。
Maven 的主要工作就是用來解析一些 XML 文件、管理生命週期與外掛。
Maven 被設計成將主要的職責委派給一組 Maven 外掛,這些外掛可以影響 Maven 生命週期,提供對目標的訪問。
0x01 Maven環境配置
1. JDK安裝以及系統要求
Maven 是一個基於 Java 的工具,所以要做的第一件事情就是安裝 JDK(自行百度)。
系統要求
2. Maven安裝及環境變數配置
Mevan下載:http://maven.apache.org/download.cgi
對應平臺下載Maven包及解壓路徑
設定 Maven 環境變數
Windows
新建系統變數 MAVEN_HOME,變數值:E:Mavenapache-maven-3.3.9
編輯系統變數Path,新增變數值:;%MAVEN_HOME%bin
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引入外部依賴
專案結構
如果我們的專案需要引入外部依賴時,可以在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://mvnrepository.com/