一 Maven簡介
maven是一個項目管理工具 它包含了一個項目對象模型 一組標准集合 一個項目生命周期 一個依賴管理系統和用來運行定義在生命周期階段中插件目標的邏輯
二 Maven兩個經典作用
1. 依賴管理
maven工程中不直接將jar包導入到工程中 而是通過在pom.xml文件中添加所需jar包的坐標 這樣就很好的避免了jar包直接引入進來 在需要用到jar包的時候 只要查找pom.xml文件 再通過pom.xml文件中的坐標到maven倉庫中找到這些jar包 再把這些jar包拿去運行
2. 一鍵構建
項目從編譯 測試 運行 打包 安裝 部署整個構建過程都交給maven進行管理 使用maven的一個命令可以輕松完成
三 壓縮包
http://maven.apache.org/download.cgi
四 安裝Maven
解壓到一個沒有中文沒有空格的路徑下
配置maven環境變量 參考下面配置
open .bash_profile
export MAVEN_HOME=/Users/HUANGYI/Documents/JavaEE/Maven/apache-maven-3.5.3
export PATH=${PATH}:${MAVEN_HOME}/bin
查看是否安裝成功 需要有jdk的環境
mvn –v
五 Maven倉庫的分類
1. 本地倉庫
用來存儲從遠程倉庫或中央倉庫下載的插件和jar包 項目使用一些插件或jar包 優先從本地倉庫查找
2. 遠程倉庫
如果本地需要插件或者jar包 本地倉庫沒有 默認去遠程倉庫下載 遠程倉庫可以在互聯網內也可以在局域網內
3. 中央倉庫
在maven軟件中內置一個遠程倉庫地址http://repo1.maven.org/maven2 它是中央倉庫 服務於整個互聯網 由maven團隊自己維護 里面存儲了非常全的jar包 它包含了世界上大部分流行的開源項目構件
六 Maven本地倉庫的配置
在MAVE_HOME/conf/settings.xml文件中配置本地倉庫位置
七 IDEA的Maven配置
八 Maven常用命令
mvn compile
工程的編譯命令 將src/main/java下的文件編譯為class文件輸出到target目錄下
mvn test
工程的測試命令 執行src/test/java下的單元測試類
mvn clean
工程的清理命令 刪除target目錄及內容
mvn package
工程的打包命令 對於java工程打成jar包 對於web工程打成war包
mvn install
工程的安裝命令 將打成jar包或war包發布到本地倉庫
九 Maven三種生命周期
1. 清理生命周期
在進行真正的構建之前進行一些清理工作
clean 清理編譯的文件
2. 默認生命周期
構建的核心部分 編譯 測試 打包 部署等等(執行后面的命令時 前面的都會執行一遍)
compile 編譯了main目錄的文件
test 編譯並運行了test目錄的文件
package 打包
install 把項目發布到本地倉庫
deploy 把項目發布到遠程倉庫
3. 站點生命周期
生成項目報告 站點 發布站點
site 生成項目的站點文檔
十 Maven依賴范圍
A依賴B 需要在A的pom.xml文件中添加B的坐標 添加坐標時需要指定依賴范圍
compile
編譯范圍 指A在編譯時依賴B 此范圍為默認依賴范圍 編譯范圍的依賴會用在編譯 測試 運行 由於運行時需要所以編譯范圍的依賴會被打包
provided
provided依賴只有在jdk或者一個容器已提供該依賴之后才使用 provided依賴在編譯和測試時需要 在運行時不需要
runtime
runtime依賴在運行和測試系統的時候需要 但在編譯的時候不需要 由於運行時需要所以runtime范圍的依賴會被打包
test
test范圍依賴 在編譯和運行時都不需要 它們只有在測試編譯和測試運行階段可用 由於運行時不需要所以test范圍依賴不會被打包
system
system范圍依賴與provided類似 但是必須顯式的提供一個對於本地系統中jar文件的路徑 需要指定systemPath磁盤路徑 system依賴不推薦使用