maven setting 文件講解

目錄

概要

??settings.xml有什么用并徘?

??settings.xml文件位置

??配置優(yōu)先級(jí)

settings.xml元素詳解

??頂級(jí)元素概覽

??LocalRepository

??InteractiveMode

??UsePluginRegistry

??Offline

??PluginGroups

??Servers

??Mirrors

??Proxies

??Profiles

????Activation

????properties

????Repositories

????pluginRepositories

??ActiveProfiles

更多閱讀

概要

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中包含類(lèi)似本地倉(cāng)儲(chǔ)位置章蚣、修改遠(yuǎn)程倉(cāng)儲(chǔ)服務(wù)器站欺、認(rèn)證信息等配置。

settings.xml文件位置

settings.xml文件一般存在于兩個(gè)位置:

全局配置: ${M2_HOME}/conf/settings.xml

用戶(hù)配置: user.home/.m2/settings.xmlnote:用戶(hù)配置優(yōu)先于全局配置纤垂。{user.home} 和和所有其他系統(tǒng)屬性只能在3.0+版本上使用矾策。請(qǐng)注意windows和Linux使用變量的區(qū)別。

配置優(yōu)先級(jí)

需要注意的是:局部配置優(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í)元素

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository/> <interactiveMode/> <usePluginRegistry/> <offline/> <pluginGroups/> <servers/> <mirrors/> <proxies/> <profiles/> <activeProfiles/> </settings>

LocalRepository

作用:該值表示構(gòu)建系統(tǒng)本地倉(cāng)庫(kù)的路徑菇肃。

其默認(rèn)值:~/.m2/repository庆尘。

<localRepository>${user.home}/.m2/repository</localRepository>

InteractiveMode

作用:表示maven是否需要和用戶(hù)交互以獲得輸入。

如果maven需要和用戶(hù)交互以獲得輸入巷送,則設(shè)置成true驶忌,反之則應(yīng)為false。默認(rèn)為true笑跛。

<interactiveMode>true</interactiveMode>

UsePluginRegistry

作用:maven是否需要使用plugin-registry.xml文件來(lái)管理插件版本付魔。

如果需要讓maven使用文件~/.m2/plugin-registry.xml來(lái)管理插件版本,則設(shè)為true飞蹂。默認(rèn)為false几苍。

<usePluginRegistry>false</usePluginRegistry>

Offline

作用:表示maven是否需要在離線(xiàn)模式下運(yùn)行。

如果構(gòu)建系統(tǒng)需要在離線(xiàn)模式下運(yùn)行陈哑,則為true妻坝,默認(rèn)為false伸眶。

當(dāng)由于網(wǎng)絡(luò)設(shè)置原因或者安全因素,構(gòu)建服務(wù)器不能連接遠(yuǎn)程倉(cāng)庫(kù)的時(shí)候刽宪,該配置就十分有用厘贼。

<offline>false</offline>

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饭耳。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> ... <pluginGroups> <pluginGroup>org.codehaus.mojo</pluginGroup> </pluginGroups> ... </settings>

Servers

作用:一般串述,倉(cāng)庫(kù)的下載和部署是在pom.xml文件中的repositories和distributionManagement元素中定義的。然而寞肖,一般類(lèi)似用戶(hù)名剖煌、密碼(有些倉(cāng)庫(kù)訪(fǎng)問(wèn)是需要安全認(rèn)證的)等信息不應(yīng)該在pom.xml文件中配置,這些信息可以配置在settings.xml中逝淹。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> ... <servers> <server> <id>server001</id> <username>my_login</username> <password>my_password</password> <privateKey>${usr.home}/.ssh/id_dsa</privateKey> <passphrase>some_passphrase</passphrase> <filePermissions>664</filePermissions> <directoryPermissions>775</directoryPermissions> </server> </servers> ... </settings>

Mirrors

作用:為倉(cāng)庫(kù)列表配置的下載鏡像列表。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> ... <mirrors> <mirror> <id>planetmirror.com</id> <name>PlanetMirror Australia</name> <url>http://downloads.planetmirror.com/pub/maven2</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> ... </settings>

Proxies

作用:用來(lái)配置不同的代理桶唐。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> ... <proxies> <proxy> <id>myproxy</id> <active>true</active> <protocol>http</protocol> <host>proxy.somewhere.com</host> <port>8080</port> <username>proxyuser</username> <password>somepassword</password> <nonProxyHosts>*.google.com|ibiblio.org</nonProxyHosts> </proxy> </proxies> ... </settings>

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横殴。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> ... <profiles> <profile> <id>test</id> <activation /> <properties /> <repositories /> <pluginRepositories /> </profile> </profiles> ... </settings>

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)瞄崇。

<activation> <activeByDefault>false</activeByDefault> <jdk>1.5</jdk> <os> <name>Windows XP</name> <family>Windows</family> <arch>x86</arch> <version>5.1.2600</version> </os> <property> <name>mavenVersion</name> <value>2.0.3</value> </property> <file> <exists>${basedir}/file2.properties</exists> <missing>${basedir}/file1.properties</missing> </file> </activation>

注:在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是指屬性的名稱(chēng)楣富。屬性有五種不同的形式凿掂,并且都能在settings.xml文件中訪(fǎng)問(wèn)。

<properties> <user.install>${user.home}/our-project</user.install> </properties>

注:如果該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ù)塘安。

<repositories> <repository> <id>codehausSnapshots</id> <name>Codehaus Snapshots</name> <releases> <enabled>false</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </releases> <snapshots> <enabled /> <updatePolicy /> <checksumPolicy /> </snapshots> <url>http://snapshots.maven.codehaus.org/maven2</url> <layout>default</layout> </repository> </repositories>

pluginRepositories

作用:發(fā)現(xiàn)插件的遠(yuǎn)程倉(cāng)庫(kù)列表糠涛。

和repository類(lèi)似,只是repository是管理jar包依賴(lài)的倉(cāng)庫(kù)兼犯,pluginRepositories則是管理插件的倉(cāng)庫(kù)忍捡。

maven插件是一種特殊類(lèi)型的構(gòu)件。由于這個(gè)原因切黔,插件倉(cāng)庫(kù)獨(dú)立于其它倉(cāng)庫(kù)砸脊。pluginRepositories元素的結(jié)構(gòu)和repositories元素的結(jié)構(gòu)類(lèi)似。每個(gè)pluginRepository元素指定一個(gè)Maven可以用來(lái)尋找新插件的遠(yuǎn)程地址纬霞。

<pluginRepositories> <pluginRepository> <releases> <enabled /> <updatePolicy /> <checksumPolicy /> </releases> <snapshots> <enabled /> <updatePolicy /> <checksumPolicy /> </snapshots> <id /> <name /> <url /> <layout /> </pluginRepository> </pluginRepositories>

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)行。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> ... <activeProfiles> <activeProfile>env-test</activeProfile> </activeProfiles> ... </settings>

至此闻鉴,maven settings.xml中的標(biāo)簽都講解完畢茵乱,希望對(duì)大家有所幫助。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末孟岛,一起剝皮案震驚了整個(gè)濱河市瓶竭,隨后出現(xiàn)的幾起案子督勺,更是在濱河造成了極大的恐慌,老刑警劉巖斤贰,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件智哀,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡荧恍,警方通過(guò)查閱死者的電腦和手機(jī)瓷叫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)送巡,“玉大人摹菠,你說(shuō)我怎么就攤上這事∑” “怎么了次氨?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)摘投。 經(jīng)常有香客問(wèn)我煮寡,道長(zhǎng),這世上最難降的妖魔是什么犀呼? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任幸撕,我火速辦了婚禮,結(jié)果婚禮上外臂,老公的妹妹穿的比我還像新娘坐儿。我一直安慰自己,他們只是感情好专钉,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著累铅,像睡著了一般跃须。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上娃兽,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天菇民,我揣著相機(jī)與錄音,去河邊找鬼投储。 笑死第练,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的玛荞。 我是一名探鬼主播娇掏,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼勋眯!你這毒婦竟也來(lái)了婴梧?” 一聲冷哼從身側(cè)響起下梢,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎塞蹭,沒(méi)想到半個(gè)月后孽江,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡番电,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年岗屏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漱办。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡这刷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出洼冻,到底是詐尸還是另有隱情崭歧,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布撞牢,位于F島的核電站率碾,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏屋彪。R本人自食惡果不足惜所宰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望畜挥。 院中可真熱鬧仔粥,春花似錦、人聲如沸蟹但。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)华糖。三九已至麦向,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間客叉,已是汗流浹背诵竭。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留兼搏,地道東北人卵慰。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像佛呻,于是被迫代替她去往敵國(guó)和親裳朋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容