您現在的位置是:首頁 > 舞蹈首頁舞蹈

Maven web專案建立和Maven依賴倉庫

由 程式猿小董 發表于 舞蹈2023-01-03
簡介表示專案的執行環境中已經提供了所需要的構件,對於此依賴範圍的maven依賴,對於編譯原始碼、編譯測試、執行測試中classpath有效,但在執行時無效

maven新增依賴怎麼儲存

前面一篇文章介紹了Maven的簡介以及安裝配置,本文主要講解Maven的座標、依賴和倉庫。

建立Maven Web專案

1、開啟IDEA軟體,點選File——>New——>project,出現下圖所示:

Maven web專案建立和Maven依賴倉庫

2、按上圖紅色區域依次操作,出現如下圖所示,輸入專案名稱,選擇專案路徑,點選Next按鈕。

Maven web專案建立和Maven依賴倉庫

3、選擇Maven安裝路徑,Maven配置檔案路徑,Maven本地庫路徑,最後點選Finish按鈕。

Maven web專案建立和Maven依賴倉庫

4、建立完成後如下所示,發現沒有java目錄,右鍵點選main資料夾——>選擇java資料夾,到此Maven web專案已經建立成功了。

Maven web專案建立和Maven依賴倉庫

約定配置

Maven 提倡使用一個共同的標準目錄結構,Maven 使用約定優於配置的原則,大家儘可能的遵守這樣的目錄結構,如下所示:

Maven web專案建立和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可以修改Maven安裝目錄下config目錄下的settings。xml檔案。

中央倉庫

中央倉庫是maven社群為我們提供的,是maven內建的一個預設的遠端倉庫地址,不需要使用者去配置。這個地址是

Central Repository: (apache。org)

。中央倉庫還為我們提供了一個檢索構件的站點:

Maven Central Repository Search。

私服

私服是一種特殊的遠端倉庫,它是架設在區域網內的倉庫伺服器,私服代理廣域網上的遠端倉庫,供區域網內的Maven使用者使用。

遠端倉庫的配置

1、在pom。xml中配置。

Maven web專案建立和Maven依賴倉庫

在repositories元素下,可以使用repository子元素宣告一個或者多個遠端倉庫。

repository元素說明:

id:遠端倉庫的一個標識,中央倉庫的id是 central ,所以新增遠端倉庫的時候,id不要和中央倉庫的id重複,會把中央倉庫的覆蓋掉

url:遠端倉庫地址

releases:主要用來配置是否需要從這個遠端倉庫下載穩定版本構件

snapshots:主要用來配置是否需要從這個遠端倉庫下載快照版本構件

2、透過映象的方式在settings。xml中配置。

Maven web專案建立和Maven依賴倉庫