maven的settings.xml配置詳解
阿新 • • 發佈:2019-01-31
maven的配置檔案settings.xml存在於兩個地方:
1.安裝的地方:${M2_HOME}/conf/settings.xml
2.使用者的目錄:${user.home}/.m2/settings.xml
前者又被叫做全域性配置,對作業系統的所有使用者生效;後者被稱為使用者配置,只對當前作業系統的使用者生效。如果兩者都存在,它們的內容將被合併,並且使用者範圍的settings.xml會覆蓋全域性的settings.xml。
Maven安裝後,使用者目錄下不會自動生成settings.xml,只有全域性配置檔案。如果需要建立使用者範圍的settings.xml,可以將安裝路徑下的settings複製到目錄${user.home}/.m2/。Maven預設的settings.xml是一個包含了註釋和例子的模板,可以快速的修改它來達到你的要求。
全域性配置一旦更改,所有的使用者都會受到影響,而且如果maven進行升級,所有的配置都會被清除,所以要提前複製和備份${M2_HOME}/conf/settings.xml檔案,一般情況下不推薦配置全域性的settings.xml。
[html] view plain copy print?- <?xmlversion="1.0"encoding="UTF-8"?>
- <settingsxmlns="http://maven.apache.org/POM/4.0.0"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
- <!--本地倉庫。該值表示構建系統本地倉庫的路徑。其預設值為${user.home}/.m2/repository。 -->
- <localRepository>usr/local/maven</localRepository>
-
<!--Maven是否需要和使用者互動以獲得輸入。如果Maven需要和使用者互動以獲得輸入,則設定成true,反之則應為false。預設為true。 -->
- <interactiveMode>true</interactiveMode>
- <!--Maven是否需要使用plugin-registry.xml檔案來管理外掛版本。 -->
- <!--如果設定為true,則在{user.home}/.m2下需要有一個plugin-registry.xml來對plugin的版本進行管理 -->
- <!--預設為false。 -->
- <usePluginRegistry>false</usePluginRegistry>
- <!--表示Maven是否需要在離線模式下執行。如果構建系統需要在離線模式下執行,則為true,預設為false。 -->
- <!--當由於網路設定原因或者安全因素,構建伺服器不能連線遠端倉庫的時候,該配置就十分有用。 -->
- <offline>false</offline>
- <!--當外掛的組織Id(groupId)沒有顯式提供時,供搜尋外掛組織Id(groupId)的列表。 -->
- <!--該元素包含一個pluginGroup元素列表,每個子元素包含了一個組織Id(groupId)。 -->
- <!--當我們使用某個外掛,並且沒有在命令列為其提供組織Id(groupId)的時候,Maven就會使用該列表。 -->
- <!--預設情況下該列表包含了org.apache.maven.plugins。 -->
- <pluginGroups>
- <!--plugin的組織Id(groupId) -->
- <pluginGroup>org.codehaus.mojo</pluginGroup>
- </pluginGroups>
- <!--用來配置不同的代理,多代理profiles可以應對筆記本或移動裝置的工作環境:通過簡單的設定profile id就可以很容易的更換整個代理配置。 -->
- <proxies>
- <!--代理元素包含配置代理時需要的資訊 -->
- <proxy>
- <!--代理的唯一定義符,用來區分不同的代理元素。 -->
- <id>myproxy</id>
- <!--該代理是否是啟用的那個。true則啟用代理。當我們聲明瞭一組代理,而某個時候只需要啟用一個代理的時候,該元素就可以派上用處。 -->
- <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>
- <!--配置服務端的一些設定。一些設定如安全證書不應該和pom.xml一起分發。這種型別的資訊應該存在於構建伺服器上的settings.xml檔案中。 -->
- <servers>
- <!--伺服器元素包含配置伺服器時需要的資訊 -->
- <server>
- <!--這是server的id(注意不是使用者登陸的id),該id與distributionManagement中repository元素的id相匹配。 -->
- <id>server001</id>
- <!--鑑權使用者名稱。鑑權使用者名稱和鑑權密碼錶示伺服器認證所需要的登入名和密碼。 -->
- <username>my_login</username>
- <!--鑑權密碼 。鑑權使用者名稱和鑑權密碼錶示伺服器認證所需要的登入名和密碼。 -->
- <password>my_password</password>
- <!--鑑權時使用的私鑰位置。和前兩個元素類似,私鑰位置和私鑰密碼指定了一個私鑰的路徑(預設是/home/hudson/.ssh/id_dsa)以及如果需要的話,一個金鑰 -->
- <!--將來passphrase和password元素可能會被提取到外部,但目前它們必須在settings.xml檔案以純文字的形式宣告。 -->
- <privateKey>${usr.home}/.ssh/id_dsa</privateKey>
- <!--鑑權時使用的私鑰密碼。 -->
- <passphrase>some_passphrase</passphrase>
- <!--檔案被建立時的許可權。如果在部署的時候會建立一個倉庫檔案或者目錄,這時候就可以使用許可權(permission)。-->
- <!--這兩個元素合法的值是一個三位數字,其對應了unix檔案系統的許可權,如664,或者775。 -->
- <filePermissions>664</filePermissions>
- <!--目錄被建立時的許可權。 -->
- <directoryPermissions>775</directoryPermissions>
- <!--傳輸層額外的配置項 -->
- <configuration></configuration>
- </serve