Maven中settings.xml有什么用?以及其中的各種標(biāo)簽的作用
settings.xml有什么用?
如果在Eclipse中使用過(guò)Maven插件,想必會(huì)有這個(gè)經(jīng)驗(yàn):配置settings.xml文件的路徑。
settings.xml文件是干什么的,為什么要配置它呢?從settings.xml的文件名就可以看出,它是用來(lái)設(shè)置maven參數(shù)的配置文件。并且,settings.xml是maven的全局配置文件。而pom.xml文件是所在項(xiàng)目的局部配置。Settings.xml中包含類似本地倉(cāng)儲(chǔ)位置、修改遠(yuǎn)程倉(cāng)儲(chǔ)服務(wù)器(如阿里云的遠(yuǎn)程倉(cāng)庫(kù))、認(rèn)證信息等配置(比如對(duì)于某個(gè)遠(yuǎn)程的倉(cāng)庫(kù)需要用戶名和密碼的話也需要在這個(gè)setting.xml中進(jìn)行配置)。
【資料圖】
在setting.xml中配置阿里云的遠(yuǎn)程倉(cāng)庫(kù):
alimaven * aliyun maven http://maven.aliyun.com/nexus/content/repositories/central/ repo1 central Human Readable Name for this Mirror. http://repo1.maven.org/maven2/ repo2 central Human Readable Name for this Mirror. http://repo2.maven.org/maven2/
settings.xml文件位置
settings.xml文件一般存在于兩個(gè)位置:全局配置: ${M2_HOME}/conf/settings.xml用戶配置: 用戶配置優(yōu)先于全局配置。user.home/.m2/settings.xmlnote:用戶配置優(yōu)先于全局配置。{user.home} 和和所有其他系統(tǒng)屬性只能在3.0+版本上使用。請(qǐng)注意windows和Linux使用變量的區(qū)別。
配置優(yōu)先級(jí)
eclipse對(duì)于Maven工程中需要注意的是:局部配置優(yōu)先于全局配置。配置優(yōu)先級(jí)從高到低:pom.xml> user settings > global settings如果這些文件同時(shí)存在,在應(yīng)用配置時(shí),會(huì)合并它們的內(nèi)容,如果有重復(fù)的配置,優(yōu)先級(jí)高的配置會(huì)覆蓋優(yōu)先級(jí)低的。
settings.xml元素詳解
頂級(jí)元素概覽
下面列舉了settings.xml
中的頂級(jí)元素
LocalRepository
作用:該值表示構(gòu)建系統(tǒng)本地倉(cāng)庫(kù)的路徑。其默認(rèn)值:~/.m2/repository。
${user.home}/.m2/repository
InteractiveMode
作用:表示maven是否需要和用戶交互以獲得輸入。如果maven需要和用戶交互以獲得輸入,則設(shè)置成true,反之則應(yīng)為false。默認(rèn)為true。
true
UsePluginRegistry
作用:maven是否需要使用plugin-registry.xml文件來(lái)管理插件版本。如果需要讓maven使用文件~/.m2/plugin-registry.xml來(lái)管理插件版本,則設(shè)為true。默認(rèn)為false。
false
Offline
作用:表示maven是否需要在離線模式下運(yùn)行。如果構(gòu)建系統(tǒng)需要在離線模式下運(yùn)行,則為true,默認(rèn)為false。當(dāng)由于網(wǎng)絡(luò)設(shè)置原因或者安全因素,構(gòu)建服務(wù)器不能連接遠(yuǎn)程倉(cāng)庫(kù)的時(shí)候,該配置就十分有用。
false
PluginGroups
作用:當(dāng)插件的組織id(groupId)沒(méi)有顯式提供時(shí),供搜尋插件組織Id(groupId)的列表。該元素包含一個(gè)pluginGroup元素列表,每個(gè)子元素包含了一個(gè)組織Id(groupId)。當(dāng)我們使用某個(gè)插件,并且沒(méi)有在命令行為其提供組織Id(groupId)的時(shí)候,Maven就會(huì)使用該列表。默認(rèn)情況下該列表包含了org.apache.maven.plugins
和org.codehaus.mojo
。
... org.codehaus.mojo ...
Servers
作用:一般,倉(cāng)庫(kù)的下載和部署是在pom.xml文件中的repositories
和distributionManagement
元素中定義的。然而,一般類似用戶名、密碼(有些倉(cāng)庫(kù)訪問(wèn)是需要安全認(rèn)證的)等信息不應(yīng)該在pom.xml文件中配置,這些信息可以配置在settings.xml
中。
... server001 my_login my_password ${usr.home}/.ssh/id_dsa some_passphrase 664 775 ...
Mirrors
作用:為倉(cāng)庫(kù)列表配置的下載鏡像列表。
... planetmirror.com PlanetMirror Australia http://downloads.planetmirror.com/pub/maven2 central ...
Proxies
作用:用來(lái)配置不同的代理。
... myproxy true http proxy.somewhere.com 8080 proxyuser somepassword *.google.com|ibiblio.org ...
Profiles
作用:根據(jù)環(huán)境參數(shù)來(lái)調(diào)整構(gòu)建配置的列表。settings.xml
中的profile
元素是pom.xml
中profile
元素的裁剪版本。它包含了id
、activation
、repositories
、pluginRepositories
和 properties
元素。這里的profile元素只包含這五個(gè)子元素是因?yàn)檫@里只關(guān)心構(gòu)建系統(tǒng)這個(gè)整體(這正是settings.xml文件的角色定位),而非單獨(dú)的項(xiàng)目對(duì)象模型設(shè)置。如果一個(gè)settings.xml
中的profile
被激活,它的值會(huì)覆蓋任何其它定義在pom.xml
中帶有相同id的profile
。
... test ...
Activation
作用:自動(dòng)觸發(fā)profile
的條件邏輯。如pom.xml
中的profile
一樣,profile
的作用在于它能夠在某些特定的環(huán)境中自動(dòng)使用某些特定的值;這些環(huán)境通過(guò)activation
元素指定。activation
元素并不是激活profile
的唯一方式。settings.xml
文件中的activeProfile
元素可以包含profile
的id
。profile
也可以通過(guò)在命令行,使用-P標(biāo)記和逗號(hào)分隔的列表來(lái)顯式的激活(如,-P test)。
false 1.5 Windows XP Windows x86 5.1.2600 mavenVersion 2.0.3 ${basedir}/file2.properties ${basedir}/file1.properties
注:在maven工程的pom.xml所在目錄下執(zhí)行mvn help:active-profiles
命令可以查看中央倉(cāng)儲(chǔ)的profile是否在工程中生效。
properties
作用:對(duì)應(yīng)profile
的擴(kuò)展屬性列表。maven屬性和ant中的屬性一樣,可以用來(lái)存放一些值。這些值可以在pom.xml
中的任何地方使用標(biāo)記${X}
來(lái)使用,這里X是指屬性的名稱。屬性有五種不同的形式,并且都能在settings.xml文件中訪問(wèn)。
${user.home}/our-project
注:如果在setting.xml中的profile被激活,則可以在pom.xml
中使用${user.install}。
Repositories
作用:遠(yuǎn)程倉(cāng)庫(kù)列表,它是maven用來(lái)填充構(gòu)建系統(tǒng)本地倉(cāng)庫(kù)所使用的一組遠(yuǎn)程倉(cāng)庫(kù)。
codehausSnapshots Codehaus Snapshots false always warn http://snapshots.maven.codehaus.org/maven2 default
pluginRepositories
作用:發(fā)現(xiàn)插件的遠(yuǎn)程倉(cāng)庫(kù)列表。和repository
類似,只是repository
是管理jar包依賴的倉(cāng)庫(kù),pluginRepositories
則是管理插件的倉(cāng)庫(kù)。maven插件是一種特殊類型的構(gòu)件。由于這個(gè)原因,插件倉(cāng)庫(kù)獨(dú)立于其它倉(cāng)庫(kù)。pluginRepositories
元素的結(jié)構(gòu)和repositories
元素的結(jié)構(gòu)類似。每個(gè)pluginRepository
元素指定一個(gè)Maven可以用來(lái)尋找新插件的遠(yuǎn)程地址。
ActiveProfiles
作用:手動(dòng)激活profiles的列表,按照profile
被應(yīng)用的順序定義activeProfile
。該元素包含了一組activeProfile
元素,每個(gè)activeProfile
都含有一個(gè)profile id。任何在activeProfile
中定義的profile id,不論環(huán)境設(shè)置如何,其對(duì)應(yīng)的 profile
都會(huì)被激活。如果沒(méi)有匹配的profile
,則什么都不會(huì)發(fā)生。例如,env-test是一個(gè)activeProfile,則在pom.xml(或者profile.xml)中對(duì)應(yīng)id的profile會(huì)被激活。如果運(yùn)行過(guò)程中找不到這樣一個(gè)profile,Maven則會(huì)像往常一樣運(yùn)行。
... env-test ...
相關(guān)閱讀
-
Maven中settings.xml有什么用?以及其中...
如果在Eclipse中使用過(guò)Maven插件,想必會(huì)有這個(gè)經(jīng)驗(yàn):配置settings... -
人民幣匯率雙破7的含義是什么?300000港...
人民幣匯率雙破7的含義早在2019年的時(shí)候人民幣破7,央行就說(shuō)過(guò),人... -
宇智波鼬在哪一集復(fù)活(宇智波鼬第幾集...
1、第六具棺材是宇智波斑。2、動(dòng)畫目前尚未出到。3、漫畫第559話已... -
世界微速訊:愛墻紙下載(愛墻網(wǎng))
1、“愛墻網(wǎng)”是一個(gè)05年出現(xiàn)的優(yōu)秀原創(chuàng)站點(diǎn),將巴黎愛墻與朱麗葉愛... -
微頭條丨天氣預(yù)報(bào)如何在桌面顯示
1)在手機(jī)待機(jī)頁(yè)面長(zhǎng)按屏幕幾秒,出現(xiàn)對(duì)話框時(shí)點(diǎn)擊“應(yīng)用程序和小組... -
a股上市意味著什么?股市a股和b股的區(qū)別...
a股上市意味著什么?A股上市意味著公司可以通過(guò)上市提高企業(yè)的知名度... -
100萬(wàn)臺(tái)幣等于多少人民幣?大陸哪里可以...
100萬(wàn)臺(tái)幣等于多少人民幣?100萬(wàn)新臺(tái)幣約等于229700人民幣,交易時(shí)以... -
拋售美國(guó)國(guó)債是什么意思?大量拋售美國(guó)...
拋售美國(guó)國(guó)債是什么意思?拋售美債就是賣出持有的美國(guó)國(guó)債或者債券。... -
環(huán)球要聞:京津冀協(xié)同發(fā)展2022年成績(jī)單...
首批標(biāo)志性疏解項(xiàng)目陸續(xù)在雄安新區(qū)落地建設(shè),中央企業(yè)在新區(qū)設(shè)立各... -
快資訊:京津冀“一小時(shí)交通圈”助力協(xié)...
新華社石家莊3月1日電(記者馮維健、王民)通勤人員乘坐定制快巴從... -
每日焦點(diǎn)!錢塘江等浙江八大流域進(jìn)入禁漁期
新華社杭州3月1日電(記者許舜達(dá))古語(yǔ)云,“勸君莫食三月鯽,萬(wàn)千... -
【環(huán)球速看料】金融舉措發(fā)力 紓困中小...
向產(chǎn)業(yè)鏈上下游精準(zhǔn)紓困,提供便捷高效的智能化服務(wù),向重點(diǎn)領(lǐng)域和... -
春潮涌動(dòng) 動(dòng)力澎湃——從六個(gè)故事看發(fā)...
萬(wàn)物復(fù)蘇,欣欣向榮。在一派熱火朝天、生機(jī)勃勃的景象里,新華社記... -
當(dāng)前滾動(dòng):數(shù)字經(jīng)濟(jì)正成為深圳高質(zhì)量發(fā)展...
廣泛賦能傳統(tǒng)經(jīng)濟(jì),數(shù)字經(jīng)濟(jì)核心產(chǎn)業(yè)增加值占全市GDP比重超30%,創(chuàng)... -
網(wǎng)銀轉(zhuǎn)賬需要手續(xù)費(fèi)嗎?免收跨行轉(zhuǎn)賬費(fèi)...
網(wǎng)銀轉(zhuǎn)賬需要手續(xù)費(fèi)嗎?網(wǎng)銀轉(zhuǎn)賬是要收取手續(xù)費(fèi)的,不過(guò)部分銀行同城... -
觀點(diǎn):胡楊樹的數(shù)據(jù)
1、胡楊是世界上最古老的一種楊樹,有著“活一千年不死、死一千年不... -
天天觀察:以下哪種水果含糖量更高 A、...
螞蟻莊園小課堂9月26日答題答案今天是什么?以下哪種水果含糖量更高A... -
環(huán)球快播:EV晨報(bào) | 比亞迪2月新能源...
比亞迪2月新能源汽車銷量19 4萬(wàn)輛;2月新勢(shì)力榜:蔚來(lái)重回前三 -
當(dāng)前熱點(diǎn)-正宗糖醋魚的做法大全_糖醋魚...
1、原料:凈魚肉450克。2、雞蛋黃25克。3、淀粉30克、花生油200克、... -
蹊蹺的近義詞是奇怪嗎(蹊蹺的近義詞)
1、索性近義詞有:爽快、直接、爽直、直率、直爽、坦率等。2、干脆g...