您現在的位置是:首頁 > 舞蹈首頁舞蹈
Maven web專案建立和Maven依賴倉庫
maven新增依賴怎麼儲存
前面一篇文章介紹了Maven的簡介以及安裝配置,本文主要講解Maven的座標、依賴和倉庫。
建立Maven Web專案
1、開啟IDEA軟體,點選File——>New——>project,出現下圖所示:
2、按上圖紅色區域依次操作,出現如下圖所示,輸入專案名稱,選擇專案路徑,點選Next按鈕。
3、選擇Maven安裝路徑,Maven配置檔案路徑,Maven本地庫路徑,最後點選Finish按鈕。
4、建立完成後如下所示,發現沒有java目錄,右鍵點選main資料夾——>選擇java資料夾,到此Maven web專案已經建立成功了。
約定配置
Maven 提倡使用一個共同的標準目錄結構,Maven 使用約定優於配置的原則,大家儘可能的遵守這樣的目錄結構,如下所示:
Maven座標
POM( Project Object Model,專案物件模型 ) 是 Maven 工程的基本工作單元,是一個XML檔案,包含了專案的基本資訊,用於描述專案如何構件,宣告專案依賴等等。
Maven中引入了座標的概念,每個構件都有唯一的座標。maven中構件座標是透過一些元素定義的,他們是groupId、artifactId、version、packaging、classifier等。
goupId:定義當前構件所屬的組,通常與域名反向一一對應。
artifactId:專案組中構件的編號。
version:當前構件的版本號,每個構件可能會發布多個版本,透過版本號來區分不同版本的構件。
package:定義該構件的打包方式,比如我們需要把專案打成jar包,採用 java -jar 去執行這個jar包,那這個值為jar;若當前是一個web專案,需要打成war包部署到tomcat中,那這個值就是war,可選(jar、war、ear、pom、maven-plugin),比較常用的是jar、war、pom。
Maven匯入依賴的構件透過座標資訊放入dependencies元素中。dependencies元素中可以包含多個 dependency ,每個 dependency 就表示當前專案需要依賴的一個構件的資訊。
dependency中groupId、artifactId、version是定位一個構件必須要提供的資訊,所以這幾個是必須的,
type:依賴的型別,表示所要依賴的構件的型別,對應於被依賴的構件的packaging。大部分情況下,該元素不被宣告,預設值為jar,表示被依賴的構件是一個jar包。
scope:依賴的範圍
option:標記依賴是否可選
exclusions:用來排除傳遞性的依賴
Maven依賴範圍
java中編譯程式碼、執行程式碼都需要用到classpath變數,classpath用來列出當前專案需要依賴的jar包。maven用到classpath的地方有:編譯原始碼、編譯測試程式碼、執行測試程式碼、執行專案。
編譯、測試、執行需要的classpath對應的值可能是不一樣的,這個maven中的scope可以幫我們解決這方面的問題,scope是用來控制被依賴的構件與classpath的關係(編譯、打包、執行所用到的classpath),scope有以下幾種值:
compile:編譯依賴範圍,如果沒有指定,預設使用該依賴範圍,對於編譯原始碼、編譯測試程式碼、測試、執行4種classpath都有效。
test:測試依賴範圍,使用此依賴範圍的maven依賴,只對編譯測試、執行測試的classpath有效,在編譯主程式碼、執行專案時無法使用此類依賴。
provide:已提供依賴範圍。表示專案的執行環境中已經提供了所需要的構件,對於此依賴範圍的maven依賴,對於編譯原始碼、編譯測試、執行測試中classpath有效,但在執行時無效。
runtime:執行時依賴範圍,使用此依賴範圍的maven依賴,對於編譯測試、執行測試和執行專案的classpath有效,但在編譯主程式碼
時無效。
system:
系統依賴範圍,該依賴與classpath的關係,和provided依賴範圍完全一致。但是,使用system範圍的依賴時必須透過systemPath元素顯示第指定依賴檔案的路徑。
這種依賴直接依賴於本地路徑中的構件,建議謹慎使用。
Maven的依賴調節功能有兩個原則:路徑最近原則和最先宣告原則。
Maven倉庫
Maven倉庫是基於簡單檔案系統儲存的,主要分為兩大類:本地倉庫和遠端倉庫。遠端倉庫又分為中央倉庫,私服和其他公共遠端倉庫。
當maven根據座標尋找構件的時候,會首先檢視本地倉庫,如果本地倉庫存在,則直接使用;如果本地不存在,maven會去遠端倉庫中查詢,如果找到了,會將其下載到本地倉庫中進行使用,如果本地和遠端倉庫都沒有找到構件,maven會報錯,構件只有在本地倉庫中存在了,才能夠被maven專案使用。
本地倉庫
預設情況下,IDEA中maven本地倉庫預設地址是 ~/。m2/respository 目錄,這個預設我們也可以在~/。m2/settings。xml 檔案中進行修改:
中央倉庫
中央倉庫是maven社群為我們提供的,是maven內建的一個預設的遠端倉庫地址,不需要使用者去配置。這個地址是
Central Repository: (apache。org)
。中央倉庫還為我們提供了一個檢索構件的站點:
Maven Central Repository Search。
私服
私服是一種特殊的遠端倉庫,它是架設在區域網內的倉庫伺服器,私服代理廣域網上的遠端倉庫,供區域網內的Maven使用者使用。
遠端倉庫的配置
1、在pom。xml中配置。
在repositories元素下,可以使用repository子元素宣告一個或者多個遠端倉庫。
repository元素說明:
id:遠端倉庫的一個標識,中央倉庫的id是 central ,所以新增遠端倉庫的時候,id不要和中央倉庫的id重複,會把中央倉庫的覆蓋掉
url:遠端倉庫地址
releases:主要用來配置是否需要從這個遠端倉庫下載穩定版本構件
snapshots:主要用來配置是否需要從這個遠端倉庫下載快照版本構件
2、透過映象的方式在settings。xml中配置。