2.Maven簡介
- 在項目中如何導入jar包
- 傳統導入jar包的方式存在什么問題?
-
項目生命周期:項目從編譯到運行的整個過程。
完整的生命周期:清理緩存——》校驗——》編譯——》測試——》打包——》安裝——》部屬
-
IDEA提供了一鍵構建項目的功能,但是如果我們需要自定義的生命周期管理,卻沒有現成的工具(清理緩存)
-
4.Maven簡介:
Maven是一個基於項目對象模型(POM)用於進行項目的依賴管理、生命周期管理的工具軟件
核心功能:
項目的依賴管理
-
項目生命周期管理
聚合工程
2.1 Maven安裝及配置
2.1.1 下載
Maven下載官網鏈接:Maven – Welcome to Apache Maven
2.1.2 安裝
Maven是基於Java語言進行開發的,因此依賴JDK(建議JDK1.7+)
開箱即用:直接解壓即可
-
解壓(D:/Maven)
-
目錄結構
bin存放指令文件(Maven提供了一個mvn指令)
boot包含了一個類加載框架的jar文件
conf 包含了Maven的核心配置文件settings.xml
lib 存放了maven運行所需的jar文件
2.1.3 配置環境變量配置
-
MAVEN_HOME 😄:\Maven\apache-maven-3.8.4
-
Path 增加 %MAVEN_HOME%bin
-
在CMd中輸入mvn_Version 出現下圖結果證明配置成功
2.2 Maven的項目結構
使用Maven進行項目還有一個好處:無論使用什么樣的開發工具(eclipse/idea)項目的結構是統一的。
fmwy(項目名稱)
---src
---main(存放項目的源文件)
---java (存放java代碼,相當於傳統項目中的src目錄 )
---resources (存放配置文件和靜態資源的目錄,相當於傳統項目的web目錄)
---test (存放項目的單元測試代碼)
---java(測試代碼)
---pom.xml
POM 指Project Object Model,Maven可以根據pom文件對此項目進行依賴管理;也就是說項目中需要依賴,直接在pom.xml進行配置即可。
在搜索引起中搜索mvn
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>
<!--指定項目的標識:G企業標識 A 項目標識 V 版本-->
<groupId>com.qfedu</groupId>
<artifactId>fmwy</artifactId>
<version>1.0.0</version>
<!-- 如果需要在當前項目中添加依賴,只需在pom.xml文件中進行依賴配置即可
配置依賴 找到依賴的坐標,添加dependencies標簽中即可
-->
<dependencies>
</dependencies>
</project>
例如添加Mysql依賴
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
</dependencies>
2.3 依賴管理
2.3.1 Maven依賴管理的流程
2.3.2 Maven倉庫介紹
-
本地倉庫
就是本地計算機上的某個文件夾(可以是自定義的任何文件夾) -
遠程倉庫
就是遠程主機上的jar文件倉庫-
中央倉庫
maven官方提供的倉庫,包含了所需的一切依賴(免配置) -
公共倉庫
除了中央倉庫以外的第三倉庫都是公共倉庫,例如aliyun -
私服
企業搭建的供內部使用的maven倉庫。Maven倉庫
-
|
2.3.3 Maven倉庫配置
- 在maven_home/conf/settings.xml中進行配置
配置本地倉庫
配置公共倉庫
阿里雲
2.4 項目生命周期管理
2.4.1 生命周期介紹
項目構建的聲明周期:項目開發結束之后部屬到運行環境運行的過程。
- 清除緩存
- 檢查
- 編譯
- 測試(就會執行maven項目中test目錄下的單元測試)
- 打包(war、jar)
- 安裝(jar會被安裝到本地倉庫
- 部屬/運行(將項目生成的包放到外部服務器中---私服)
2.4.2 生命周期管理指令
在項目的根目錄下執行mvn指令,(此目錄下必須包含pom.xml)
-
清除緩存
mvn clean
-
檢查
mvn check
-
編譯
mvn compile
-
測試(就會執行maven項目中test目錄下的單元測試)
mvn test
-
打包(war、jar)
mvn package
-
安裝(jar會被安裝到本地倉庫)
mvn install
-
部屬/運行(將項目生成的包放到服務器中)
mvn deploye
2.6 基於IDEA的Maven使用
2.6.1 在IDEA中關聯Maven
|
|
| -------------------------------------------------------- |
|
|
說明
:IDEA本身集成了Maven,考慮到IDEA和Maven版本的兼容性,idea不建議配置比默認版本更新的版本,建議使用idea自帶的Maven。
2.6.2 使用IDEA創建Maven項目
(1)Java項目
|
|
| -------------------------------------------------------- |
|
|
|
|
| |
(2)Web項目
-
創建maven項目,步驟和建立java項目一樣(再改造普通的Java項目為web項目)
-
在POM.xml文件設置打包方式為war
<?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>Demo01</artifactId> <version>1.0-SNAPSHOT</version> <!--設置項目打包方式為war--> <packaging>war</packaging> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> </project>
-
完善項目結構
-
配置web組件(Tomcat)
-
部屬web項目
2.6.3 在IDEA中使用Maven進行依賴管理
- 查找依賴坐標:Maven Repository: Search/Browse/Explore (mvnrepository.com)
- 添加依賴 :將依賴的坐標配置到項目的Pom.xml文件
標簽中。 - 依賴范圍:在通過dependency添加依賴時,可以通過
scope
標簽配置當前依賴的使用范圍。- test :只在項目測試階段引入當前依賴(編譯、測試)例如Junit
- runtime:只在運行時使用(運行、測試運行)
- provided: 在(編譯、測試、運行)
- complie: 在(編譯、測試、運行、打包)都引入。
2.6.4 在IDEA中使用Maven進行項目構建
-
Maven項目構建生命周期說明
clean
清理緩存,清理項目生成的緩存validate
校驗,驗證項目需要是正確的(項目信息、依賴)compile
編譯,編譯項目專供的源代碼test
測試 運行項目中的單元測試(把鼠標放在類上,按a/t+insert會自動選擇生成測試類)package
打包 將項目編譯后的代碼打包成發布格式verify
檢查 對集成測試的結果進行檢查、確保項目的質量是達標的install
安裝 將包安裝到maven的本地倉庫,以便在本地的其他項目中可以引用此項目(聚合工程)deploy
部屬 將包安裝到私服的倉庫,以供其他開發人員共享
-
IDEA進行生命周期管理
-
可視化:
-
終端指令:選擇項目名稱---右鍵---Open in Terminal 在里面輸入對應的指令 例:mvn clean
-
2.7 私服
企業搭建供內部使用的一個Maven倉庫
- 開發者需要依賴直接從私服下載
- 私服可以實現企業內部依賴的共享:當企業開發了一個通用插件(jar),可以發布到私服,可以連接到當前私服的其他開發者就可以共享這個插件了。
2.7.1 私服搭建
我們可以通過專門的Maven倉庫管理軟件來搭建私服。例如:Apache Archiva、Nexus
- 下載Nexus
- 解壓Nexus
- 進入到D:\Maven\nexus-2.14.8-01\bin目錄中
- 管理員身份打開cmd命令行,執行指令
- 登錄nexus :私服管理器登錄地址:http://localhost:8081/nexus
- 私服中倉庫類型
2.7.2 配置私服
- 在maven的settings.xml文件的servers標簽中
- 在maven的settings.xml文件的profiles標簽中
- 在maven的settings.xml文件的activeProfiles配置激活profile