Apache Maven是一個項目管理及構建工具,主要用于Java項目的構建,Maven還可以用于構建和管理以C#,Ruby,Scala和其他語言編寫的項目。
站在用戶的角度思考問題,與客戶深入溝通,找到青云譜網站設計與青云譜網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網站設計制作、網站制作、企業(yè)官網、英文網站、手機端網站、網站推廣、申請域名、雅安服務器托管、企業(yè)郵箱。業(yè)務覆蓋青云譜地區(qū)。Maven解決了構建軟件那幾方面問題:
傳統(tǒng)的項目沒有使用Maven大部分情況是由IDE對編寫代碼進行自動編譯,將JAVA文件編譯成CLASS之后,由研發(fā)對bin目錄下的CLASS進行打包部署。而Maven通過插件進行構建,并自動打包成Jar或者war包。讓編譯構建的工作可以很好的在持續(xù)集成的過程中交給工具去完成。
通過Pom和settings的配置,到中央倉庫進行依賴軟件包的獲取,摒棄原來把依賴包打入源碼項目中,減少源項目的大小,讓提升開發(fā)人員拉取代碼效率,并且可以通過中央倉庫對依賴進行統(tǒng)一管理,減少存儲空間浪費。
可以通過繼承,分層等方式管理項目的模塊,讓代碼拆分更清晰。
Maven運行依賴于Java環(huán)境,所以需要安裝Java運行環(huán)境JDK。
Maven下載地址
http :// maven.apache.org/download.cgi
右鍵 “此電腦” 選擇 "屬性",之后點擊 "高級系統(tǒng)設置",點擊"環(huán)境變量",來設置環(huán)境變量,有以下系統(tǒng)變量需要配置:
新建系統(tǒng)變量 MAVEN_HOME,變量值 例如:E:\Maven\apache-maven-3.6.3
編輯系統(tǒng)變量 Path,添加變量值:;%MAVEN_HOME%\bin
sudo vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=${PATH}:${MAVEN_HOME}/bin
source /etc/profile
默認值:
不管Linux還是 Windows,每個用戶在自己的用戶目錄下都有一個路徑名為 .m2/respository/ 的倉庫目錄
Maven 中央倉庫是由 Maven 社區(qū)提供的倉庫。
自建的游戲或者其他遠程倉庫等
定義遠程倉庫的認證信息
POM(Project Object Model)用于描述項目如何構建,聲明項目依賴等等。執(zhí)行任務或目標時,Maven 會在當前目錄中查找 POM。它讀取 POM,獲取所需的配置信息,然后執(zhí)行目標。
所有 POM 文件主要配置內容
groupId
組織標識。它在一個組織或者項目中通常是唯一的。例如,JFrog 軟件包 com.jfrog
artifactId
制品標識。它通常是工程的名稱。例如,JFrog 的Artifactory,artifactory。groupId 和 artifactId 一起定義了 artifact 在倉庫中的位置。
version
版本號。在 artifact 的倉庫中,它用來區(qū)分不同的版本,比如1.0或者1.0-SNAPSHOT
classifier
制品包JDK版本,也就是編譯器版本
以上四個標簽構成了Maven的管理包的坐標體系也就是我們常說的GAVC
distributionManagement
部署上傳。定義上傳的遠程倉庫
parent
繼承。定義項目間繼承關系
dependency
項目依賴。添加依賴通過GAVC
build
構建。項目的目錄結構和構建插件管理等
當我們執(zhí)行 Maven 構建命令時,Maven 開始按照以下順序查找依賴的庫:
步驟 1- 在本地倉庫中搜索,如果找不到,執(zhí)行步驟 2,如果找到了則執(zhí)行其他操作。
步驟 2- 在中央倉庫中搜索,如果找不到,并且有一個或多個遠程倉庫已經設置,則執(zhí)行步驟 4,如果找到了則下載到本地倉庫中以備將來引用。
步驟 3 - 如果遠程倉庫沒有被設置,Maven 將簡單的停滯處理并拋出錯誤(無法找到依賴的文件)。
步驟 4- 在一個或多個遠程倉庫中搜索依賴的文件,如果找到則下載到本地倉庫以備將來引用,否則 Maven 將停止處理并拋出錯誤(無法找到依賴的文件)。
標準生命周期
clean:項目清理的處理
default:項目部署的處理
site:項目站點文檔創(chuàng)建的處理
default周期中的幾個階段
mvn clean
#清理命令 清理項目生產的臨時文件,一般是模塊下的target目錄
mvn compile
#編譯命令 編譯源代碼
mvn test
#測試命令 或執(zhí)行src/test/java/下junit的測試用例
mvn package
#打包命令 項目打包工具,會在模塊下的target目錄生成jar或war等文件
mvn install
#安裝命令 生成Pom供,并將jar和Pom文件安裝到本地倉庫,其他模塊使用 -Dmaven.test.skip=true跳過測試(同時會跳過test compile)
mvn deploy
#發(fā)布命令 將打包的文件發(fā)布到遠程參考,提供其他人員進行下載依賴 ,一般是發(fā)布到公司的游戲
更多精彩內容可以專注我們的在線課堂
微信搜索公眾號:jfrogchina 獲取課程通知