您好,登錄后才能下訂單哦!
Apache Maven是一個項目管理及構建工具,主要用于Java項目的構建,Maven還可以用于構建和管理以C#,Ruby,Scala和其他語言編寫的項目。
Maven解決了構建軟件那幾方面問題:
傳統的項目沒有使用Maven大部分情況是由IDE對編寫代碼進行自動編譯,將JAVA文件編譯成CLASS之后,由研發對bin目錄下的CLASS進行打包部署。而Maven通過插件進行構建,并自動打包成Jar或者war包。讓編譯構建的工作可以很好的在持續集成的過程中交給工具去完成。
通過Pom和settings的配置,到中央倉庫進行依賴軟件包的獲取,摒棄原來把依賴包打入源碼項目中,減少源項目的大小,讓提升開發人員拉取代碼效率,并且可以通過中央倉庫對依賴進行統一管理,減少存儲空間浪費。
可以通過繼承,分層等方式管理項目的模塊,讓代碼拆分更清晰。
Maven運行依賴于Java環境,所以需要安裝Java運行環境JDK。
Maven下載地址
http :// maven.apache.org/download.cgi
右鍵 “此電腦” 選擇 "屬性",之后點擊 "高級系統設置",點擊"環境變量",來設置環境變量,有以下系統變量需要配置:
新建系統變量 MAVEN_HOME,變量值 例如:E:\Maven\apache-maven-3.6.3
編輯系統變量 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
默認值:<localRepository>${user.home}/.m2/repository</localRepository>
不管Linux還是 Windows,每個用戶在自己的用戶目錄下都有一個路徑名為 .m2/respository/ 的倉庫目錄
Maven 中央倉庫是由 Maven 社區提供的倉庫。
自建的私服或者其他遠程倉庫等
定義遠程倉庫的認證信息
POM(Project Object Model)用于描述項目如何構建,聲明項目依賴等等。執行任務或目標時,Maven 會在當前目錄中查找 POM。它讀取 POM,獲取所需的配置信息,然后執行目標。
所有 POM 文件主要配置內容
groupId
組織標識。它在一個組織或者項目中通常是唯一的。例如,JFrog 軟件包 com.jfrog
artifactId
制品標識。它通常是工程的名稱。例如,JFrog 的Artifactory,artifactory。groupId 和 artifactId 一起定義了 artifact 在倉庫中的位置。
version
版本號。在 artifact 的倉庫中,它用來區分不同的版本,比如1.0或者1.0-SNAPSHOT
classifier
制品包JDK版本,也就是編譯器版本
以上四個標簽構成了Maven的管理包的坐標體系也就是我們常說的GAVC
distributionManagement
部署上傳。定義上傳的遠程倉庫
parent
繼承。定義項目間繼承關系
dependency
項目依賴。添加依賴通過GAVC
build
構建。項目的目錄結構和構建插件管理等
當我們執行 Maven 構建命令時,Maven 開始按照以下順序查找依賴的庫:
步驟 1 - 在本地倉庫中搜索,如果找不到,執行步驟 2,如果找到了則執行其他操作。
步驟 2 - 在中央倉庫中搜索,如果找不到,并且有一個或多個遠程倉庫已經設置,則執行步驟 4,如果找到了則下載到本地倉庫中以備將來引用。
步驟 3 - 如果遠程倉庫沒有被設置,Maven 將簡單的停滯處理并拋出錯誤(無法找到依賴的文件)。
步驟 4 - 在一個或多個遠程倉庫中搜索依賴的文件,如果找到則下載到本地倉庫以備將來引用,否則 Maven 將停止處理并拋出錯誤(無法找到依賴的文件)。
標準生命周期
clean:項目清理的處理
default:項目部署的處理
site:項目站點文檔創建的處理
default周期中的幾個階段
mvn clean
#清理命令 清理項目生產的臨時文件,一般是模塊下的target目錄
mvn compile
#編譯命令 編譯源代碼
mvn test
#測試命令 或執行src/test/java/下junit的測試用例
mvn package
#打包命令 項目打包工具,會在模塊下的target目錄生成jar或war等文件
mvn install
#安裝命令 生成Pom供,并將jar和Pom文件安裝到本地倉庫,其他模塊使用 -Dmaven.test.skip=true跳過測試(同時會跳過test compile)
mvn deploy
#發布命令 將打包的文件發布到遠程參考,提供其他人員進行下載依賴 ,一般是發布到公司的私服
更多精彩內容可以專注我們的在線課堂
微信搜索公眾號:jfrogchina 獲取課程通知
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。