maven配置文件settings.xml詳解

maven運(yùn)行時(shí)的配置文件settings.xml

安裝位置

  1. 全局配置:${maven_home}/config/settings.xml
  2. 用戶配置:~/.m2/settings.xml

如果全局配置與用戶配置同時(shí)存在薄疚,會進(jìn)行合并舶赔,相同配置則以用戶配置優(yōu)先辅鲸。

配置節(jié)點(diǎ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">
      <localRepository/>
      <interactiveMode/>
      <offline/>
      <pluginGroups/>
      <servers/>
      <mirrors/>
      <proxies/>
      <profiles/>
      <activeProfiles/>
    </settings>

localRepository

本地倉庫路徑,不配置則默認(rèn)為${user.home}/.m2/repository

interactiveMode

交互模式贷痪,是否接受用戶輸入,默認(rèn)為true

offline

是否在離線模式下運(yùn)行,默認(rèn)是false

pluginGroups

插件瑟由。通過在pluginGroup節(jié)點(diǎn)下配置id標(biāo)識济竹,在命令行中使用到的插件需要在這里配置痕檬。注:org.apache.maven.plugins 和 org.codehaus.mojo里面的差價(jià)自動包含不需要配置。如下配置:

<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.eclipse.jetty</pluginGroup>
  </pluginGroups>
  ...
</settings>

如上配置可以在命令行執(zhí)行如下命令:

mvn jetty:run

servers

在項(xiàng)目的POM中可以配置上傳和下載( repositories and distributionManagement )的倉庫送浊,但是倉庫對應(yīng)的用戶名梦谜、密碼、秘鑰袭景、權(quán)限等敏感信息應(yīng)當(dāng)在構(gòu)建服務(wù)器上配置唁桩,即在本節(jié)點(diǎ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">
  ...
  <servers>
    <server>
      <id>server001</id>
      <username>my_login</username>
      <password>my_password</password>
      <privateKey>${user.home}/.ssh/id_dsa</privateKey>
      <passphrase>some_passphrase</passphrase>
      <filePermissions>664</filePermissions>
      <directoryPermissions>775</directoryPermissions>
      <configuration></configuration>
    </server>
  </servers>
  ...
</settings>
  • id:服務(wù)器的id耸棒,需要與倉庫和鏡像中對應(yīng)(repository/mirror)

mirrors

鏡像倉庫地址配置荒澡,參考地址

<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>
  • id:多個(gè)竟像時(shí),id不能重復(fù)
  • mirrorOf:當(dāng)前id對應(yīng)的鏡像与殃,不能與id相同

proxies

代理信息的配置

<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>
  • active:true表示當(dāng)前代理有效单山,false表示當(dāng)前代理無效
  • nonProxyHosts:不需要通過代理的主機(jī)

profiles

這里的profile是項(xiàng)目中pom.xml中profile節(jié)點(diǎn)的縮減版,是全局配置幅疼,并不針對于單獨(dú)的項(xiàng)目米奸。這里的profile只包含四個(gè)子節(jié)點(diǎn),分別是:activation爽篷,repositories悴晰,properties,pluginRepositories

settings.xml中profile配置會覆蓋項(xiàng)目中pom.xml或者 profiles.xml中配置

activation

這里配置的是profile的關(guān)鍵信息,與pom中的profile類似铡溪,可以定義指定環(huán)境下參數(shù)使用漂辐。

<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>
        <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>
      ...
    </profile>
  </profiles>
  ...
</settings>
  • jdk:jdk版本配置,只是jdk版本的前綴棕硫,會在環(huán)境中尋找符合前綴條件的jdk來使用髓涯,maven2.1開始支持區(qū)間配置。參考
  • os:系統(tǒng)配置饲帅。參考
  • porperty:當(dāng)maven需要某些屬性的時(shí)候复凳,會從這里尋找name,value對灶泵∮耍可以與pom中配置相同的name,對應(yīng)不同的value
  • file:通過給定文件赦邻,在哪個(gè)文件存在髓棋,哪個(gè)文件不存在的情況profile生效

profile的生效與否不僅可以在這里配置,同時(shí)可以在命令行通過 -P profileid使其生效

通過maven-help-plugin查看當(dāng)前構(gòu)建下有效的profile

mvn help:active-profiles

properties

maven的屬性通過占位符 ${X}來配置惶洲,在settings.xml中有5中不同格式的配置按声。

  1. env.X: Prefixing a variable with “env.” will return the shell’s environment variable. For example, {env.PATH} contains thepath environment variable (%PATH% in Windows).
  2. project.x: A dot (.) notated path in the POM will contain the corresponding element’s value. For example: <project><version>1.0</version></project> is accessible via ${project.version}.
  3. settings.x: A dot (.) notated path in the settings.xml will contain the corresponding element’s value. For example: <settings><offline>false</offline></settings> is accessible via ${settings.offline}.
  4. Java System Properties: All properties accessible via java.lang.System.getProperties() are available as POM properties, such as ${java.home}.
  5. x: Set within a <properties /> element or an external files, the value may be used as ${someVar}.
<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>
      ...
      <properties>
        <user.install>${user.home}/our-project</user.install>
      </properties>
      ...
    </profile>
  </profiles>
  ...
</settings>

repository

遠(yuǎ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">
  ...
  <profiles>
    <profile>
      ...
      <repositories>
        <repository>
          <id>codehausSnapshots</id>
          <name>Codehaus Snapshots</name>
          <releases>
            <enabled>false</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
          </snapshots>
          <url>http://snapshots.maven.codehaus.org/maven2</url>
          <layout>default</layout>
        </repository>
      </repositories>
      <pluginRepositories>
        ...
      </pluginRepositories>
      ...
    </profile>
  </profiles>
  ...
</settings>
  • enabled:true表示生效,false表示不生效
  • updatePolicy:更新策略恬吕∏┰颍可選值:always, daily (默認(rèn))铐料,interval:X (X整數(shù)渐裂,單位:分鐘) , never
  • checksumPolicy:部署到倉庫策略钠惩∑饬梗可選擇:ignore,fail篓跛, warn on missing 膝捞, incorrect checksums
  • layout:maven2開始又默認(rèn)配置

pluginRepositories

插件倉庫配置,配置類似于repositories

activeProfiles

配置哪些profile是生效的愧沟,指向是profile的id蔬咬,如果配置的id不存在,不會有任何問題沐寺。配置在settings.xml林艘、pom.xml、和profile.xml中的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">
  ...
  <activeProfiles>
    <activeProfile>env-test</activeProfile>
  </activeProfiles>
</settings>

其他文章列表

spring web service系列1
spring web service系列2
spring web service系列3
Nginx轉(zhuǎn)發(fā)請求過程解析
Nginx中的負(fù)載均衡算法
Nginx upstream指令配置說明
Nginx中虛擬服務(wù)器server指令配置說明
Nginx中proxy_pass/proxy_redirect/proxy_set_header配置說明
Nginx中ngx_http_core_module相關(guān)指令配置說明
Java自帶JVM監(jiān)控工具jstat使用詳細(xì)說明
Java自帶JVM監(jiān)控工具jps使用詳細(xì)說明
Java自帶故障分析工具jmap工具使用說明
Java自帶故障分析工具jhat工具使用說明

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市卜朗,隨后出現(xiàn)的幾起案子拔第,更是在濱河造成了極大的恐慌咕村,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚊俺,死亡現(xiàn)場離奇詭異懈涛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)泳猬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門批钠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人得封,你說我怎么就攤上這事埋心。” “怎么了忙上?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵拷呆,是天一觀的道長。 經(jīng)常有香客問我疫粥,道長茬斧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任梗逮,我火速辦了婚禮项秉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘慷彤。我一直安慰自己娄蔼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布瞬欧。 她就那樣靜靜地躺著贷屎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪艘虎。 梳的紋絲不亂的頭發(fā)上唉侄,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機(jī)與錄音野建,去河邊找鬼属划。 笑死,一個(gè)胖子當(dāng)著我的面吹牛候生,可吹牛的內(nèi)容都是我干的同眯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼唯鸭,長吁一口氣:“原來是場噩夢啊……” “哼须蜗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤明肮,失蹤者是張志新(化名)和其女友劉穎菱农,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柿估,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡循未,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秫舌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片的妖。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖足陨,靈堂內(nèi)的尸體忽然破棺而出嫂粟,到底是詐尸還是另有隱情,我是刑警寧澤钠右,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布赋元,位于F島的核電站,受9級特大地震影響飒房,放射性物質(zhì)發(fā)生泄漏搁凸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一狠毯、第九天 我趴在偏房一處隱蔽的房頂上張望护糖。 院中可真熱鬧,春花似錦嚼松、人聲如沸嫡良。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寝受。三九已至,卻和暖如春罕偎,著一層夾襖步出監(jiān)牢的瞬間很澄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工颜及, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留甩苛,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓俏站,卻偏偏與公主長得像讯蒲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子肄扎,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

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