JAVA配置檔案全解
阿新 • • 發佈:2020-11-05
1、setting.xml
maven的配置檔案settings.xml存在於兩個地方:
- 安裝的地方:
${M2_HOME}/conf/settings.xml
- 使用者的目錄:
${user.home}/.m2/settings.xml
前者又被叫做全域性配置,對作業系統的所有使用者生效;後者被稱為使用者配置,只對當前作業系統的使用者生效。如果兩者都存在,它們的內容將被合併,並且使用者範圍的settings.xml會覆蓋全域性的settings.xml。
Maven安裝後,使用者目錄下不會自動生成settings.xml,只有全域性配置檔案。如果需要建立使用者範圍的settings.xml,可以將安裝路徑下的settings複製到目錄${user.home}/.m2/
全域性配置一旦更改,所有的使用者都會受到影響,而且如果maven進行升級,所有的配置都會被清除,所以要提前複製和備份${M2_HOME}/conf/settings.xml
檔案,一般情況下不推薦配置全域性的settings.xml。
下面的配置檔案對各個節點的含義及作用都有註解。實際應用中,經常使用的是<localRepository>
、<servers>
、<mirrors>
、<profiles>
有限幾個節點,其他節點使用預設值足夠應對大部分的應用場景。
<?xml version="1.0" encoding="UTF-8"?>
<settings
xmlns="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>