1. 程式人生 > >maven配置文件詳解

maven配置文件詳解

lean eprof blank con profile 倉庫 tor 2.4 ref

1 首先,setting.xml一般存在與兩個地方:maven的安裝目錄/conf/,和${user.home}/.m2/下。他們的區別是在maven安裝目錄下的setting.xml是所有用戶都可以應用的配置,而user.home下的可想而知就是針對某一用戶的配置(推薦是在user.home下)。如果兩個都進行了配置,則在應用的時候會將兩個配置文件進行中和,而且user.home下的setting.xml優先級大於maven安裝目錄下的。

2 setting.xml文件中頂層元素一覽:

[html] view plain copy
  1. <span style="font-family:Microsoft YaHei;"><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
  4. http://maven.apache.org/xsd/settings-1.0.0.xsd">
  5. <localRepository/>
  6. <interactiveMode/>
  7. <usePluginRegistry/>
  8. <offline/>
  9. <pluginGroups/>
  10. <servers/>
  11. <mirrors/>
  12. <proxies/>
  13. <profiles/>
  14. <activeProfiles/>
  15. </settings></span>


下面對各個元素進行解析:

2.1 localRepository

建構系統本地倉庫的路徑,不設置的話默認是在{user.home}/.m2/repository/下,如果想要系統所有用戶共用一個本地倉庫,則可以在maven安裝目錄下的setting.xml中進行設置

2.2 interactiveMode

指定Maven是否試圖與用戶交互來得到輸入,默認是true

2.3 usePluginRegistry

如果設置為true,則在{user.home}/.m2下需要有一個plugin-registry.xml來對plugin的版本進行管理。默認是false

2.4 offline

如果不想每次編譯的時候都去查找遠程中心倉庫,就需要設置為true,但前提是本地倉庫中已有需要的jar包,默認是false

2.5 pluginGroups

該元素包含一系列的pluginGroup元素,每個pluginGroup又有一個groupId,當一個plugin被使用而在命令行中哦給沒有指定groupId的時候,就會查詢這個列表

2.6 Servers

maven除了一般的本地倉庫和中央倉庫之外,還有一種是遠程倉庫,一般部署在局域網中供Maven用戶使用(成為私服),當maven需要下載構件的時候,它先從私服中請求,如果沒有,再到外部的中央倉庫中下載,同時下載的構件會在下載到私服中供以後使用,或者用戶可以將將構件上傳到私服中。

私服還有一個好處就是存放組織內部自己生成的私有構件,這類構件不可能從外部的中央倉庫獲取,但是組織內部用戶又需要共享使用,這個時候就需要私服了。

一般私服建立完畢之後不需要認證就可以訪問,但是處於安全方面的考慮,需要提供認證信息才能訪問這些私服,這時就需要使用servers元素(需要註意的是配置私服的信息是在pom文件中,但是認證信息則是在setting.xml中,這是因為pom文件往往是被提交到代碼倉庫中供所有成員訪問的,而setting.xml是存放在本地的,這樣是安全的)。

而maven是根據pom中的repositories和distributionMnagement元素來決定,然後運行maven clean deploy,這樣maven就根據pom中的配置將自己的第三方構件部署在私服上供組織內其他用戶使用(註意maven clean deploy和maven clean install的區別:deploy是將該構件部署在私服中,而install是將構件存入自己的本地倉庫中)。

2.7 morriors

顯而易見,鏡像,也供maven下載jar包

2.8 proxies

當用戶 用代理登錄下載時需要配置(但是我現在是在使用代理,可是還是沒有作用,原因未知?)

2.9 profiles(??)

2.10 activeProfiles(??)

maven配置文件詳解