一、Maven概述
1.1 使用Maven的背景
1.1.1 一個成熟的項目需要引入大量的jar包,且jar包之間的關系錯綜複雜,一個jar包往往又會引用其他jar包,缺少任何一個jar包都會導緻項目編譯失敗,并且因為jar包的數量之多難以查找。
1.1.2 Maven就是一款幫助程式員建構項目的工具,我們隻需要告訴Maven需要哪些Jar 包,它會幫助我們下載下傳所有的Jar,極大提升開發效率。
1.2什麼是Maven
1.2.1 Maven是一個項目建構管理工具。 由Apache組織釋出的一款開源的工具軟體。Maven可以幫助我們完成 清除、編譯、測試、打包、安裝、部署的整個項目建構過程。
1.2.2 Maven不僅是一個項目建構工具,更是一個項目管理工具。它在項目建構工程中,比ant更全面,更靈活。Maven在進行項目建構時,它對項目目錄結構擁有約定,知道你的源代碼在哪裡,類檔案應該放到哪裡去。它擁有生命周期的概念,maven的生命周期是有順序的,在執行後面的生命周期的任務時,不需要顯示的配置前面任務的生命周期。例如執行 mvn install 就可以自動執行編譯,測試,打包等建構過程。
1.2.3 Maven是基于項目對象模型(POM),可以通過一小段描述資訊來管理項目的建構,報告和文檔的軟體項目管理工具。
1.2.4 Maven是跨平台的項目管理工具。主要服務于基于Java平台的項目建構,依賴管理和項目資訊管理。
1.3Maven的目錄構造
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPn1UMrR0T1cmeNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL3MjN3UjM1MjM4ADMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
1.4Maven開發的好處
1.4.1 使用Maven可以擺脫開發工具的限制 。
1.4.2 使用Maven可以幫助我們管理依賴。
1.4.3 使用Maven自動的管理依賴,從某種程度上簡化了項目開發的環境維護。
1.4.4 支援遠端部署。
1.4.5 使用指令快速的建構項目 。
二、 安裝Maven
2.1 maven官網http://maven.apache.org/
2.2 點選Download,選擇apache-maven-3.6.2-bin.zip下載下傳
2.3 下載下傳完成後,解壓
2.4 配置環境變量
2.5 在cmd中輸入 mvn -v,出現以下資訊則表示成功
2.6 在E:\apache-maven-3.6.2\conf的settings.xml配置本地倉庫
2.7 在E:\apache-maven-3.6.2\conf的settings.xml配置阿裡倉庫資訊
2.8 myEclipse關于Maven的配置
三、在myEclipse建立Maven工程
建立成功,去掉隐藏的src/main/java和src/main/resource
項目至此就建立完成了。
四、Maven的核心概念
4.1 倉庫
4.1.1 本地倉庫 :本地倉庫是指計算機磁盤上的倉庫。這個需要自己從網上下載下傳。
4.1.2 遠端倉庫:
maven的中心倉庫 (需要去通路外網下載下傳,速度很慢)
第三方管理的倉庫 (私服)(此處我們之前在setting.xml中配置的是阿裡的)
4.1.3 倉庫的作用
4.2坐标
4.2.1 在maven中坐标就是為了定位一個唯一确定的jar包。
4.2.2 Maven坐标主要組成
groupId:目前Maven組織名稱
artifactId:實際項目名稱
version:目前項目的目前版本
4.2.3 坐标的擷取: https://mvnrepository.com maven中心倉庫網址
4.3pom.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">
<!-- 模型的版本 必須是4.0.0 -->
<modelVersion>4.0.0</modelVersion>
<!-- 目前項目的坐标 -->
<groupId>com.ix</groupId>
<artifactId>TestMaven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<!-- 你的項目名 -->
<name>TestMaven Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<!-- 定義的一些常量 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!-- 指定項目需要的所有依賴坐标 -->
<dependencies>
<!-- junit測試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
<!-- 目前jar包的有效範圍
compile 【預設】 随項目釋出
test 僅限測試包有效
provided 期待容器提供
runtime 運作時使用
-->
</dependency>
<!-- 引入日志jar包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- 資料庫驅動jar -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.0.1-atlassian-hosted</version>
</dependency>
<!-- 引入mybatis的jar包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<!-- jsp -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
</dependency>
<!-- 引入struts2的jar包 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.3.16</version>
</dependency>
<!-- jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<finalName>TestMaven</finalName>
</build>
</project>