<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          弄懂maven倉庫 & 倉庫優(yōu)先級 & settings & pom配置關系及差異

          共 4259字,需瀏覽 9分鐘

           ·

          2022-05-20 20:30


          repository 倉庫

          • 本地倉庫

          本機一般 .m2
          本地倉庫地址可以在 settings.xml 里邊指定

          • 遠程倉庫

          比如公司私有倉庫
          pom 可以通過配置多個 repository 來,如果好多項目共用的話,可以在 settings 文件配置 profile,這樣新項目就不需要重復配置 repository 了

          • 中央倉庫

          maven 必須至少知道一個遠程倉庫,中央倉庫就是默認的倉庫,不需要顯示配置在maven 的 super pom 中配置的
          兜底用的,找不到的 jar 會找它

          如果中央倉庫慢可以用 mirrors 來替換它,它的 id 是 central,在 mirrorOf 標簽中配置它的標簽就是替換了


          倉庫在哪里配置

          可以在 settings 或者?pom.xml 中配置
          可以嵌入到 profile 中,也可以單獨通過 repository 配置然后 profile 通過 id 引用


          誰用倉庫

          profile (構建) 標簽會指定倉庫
          下載 jar 會有一個默認的搜索順序,見 repo 優(yōu)先級


          server 和 repository如何關聯(lián)

          通過 distributionManagement 標簽根據 id 關聯(lián)起來

          依賴倉庫的配置方式

          • 中央倉庫,這是默認的倉庫

          • 鏡像倉庫,通過 sttings.xml 中的 settings.mirrors.mirror 配置

          • 全局profile倉庫,通過 settings.xml 中的 settings.repositories.repository 配置

          • 項目倉庫,通過 pom.xml 中的 project.repositories.repository 配置

          • 項目profile倉庫,通過 pom.xml 中的 project.profiles.profile.repositories.repository 配置

          • 本地倉庫

          依賴優(yōu)先級關系由近(本地倉庫)及遠(中央倉庫)

          強烈注意: 你的 maven 的環(huán)境變量會覆蓋一切. 當你發(fā)現(xiàn)你修改 settings 不生效的時候,檢查下你的 maven home 配置


          repo 優(yōu)先級

          本地倉庫jar>global settings active profile> user settings active profile>pom profile>pom repo>user mirror>global mirrorpom中的repo配置高于user/global settings中的mirroruser/global settings中的activa profile高于pom中的repoglobal settgings中的active profile高于user settings中的active profileuser settings active profile高于mirror(checked)
          但是settings定位不同,它傾向于提供一些公共的附屬信息,而不是個性化的構建信息.它會

          盡量融合到你的pom中。


          mirror鏡像又是個什么東西

          就是一個備份或冗余.并且你有的我也有并且我比你快
          用鏡像倉庫替代默認的遠程倉庫

          用來替代在 pom 中 repository 定義的倉庫(miorrorOf 標簽通過唯一的倉庫 id)
          maven 的中央倉庫 id 是 central(在 super pom 中配置)

          注意:當遠程倉庫被鏡像匹配到的,則在獲取 jar 包將從鏡像倉庫獲取,而不是我們配置的 repository 倉庫, repository 將失去作用

          如果你不是以上兩個目的就不用配置鏡像了


          mirror優(yōu)先級

          見 repo 優(yōu)先級
          pom 不支持配置


          profile是個什么東西

          定義構建程序的資源和配置,如:????-?遠程倉庫列表    - 構建時本地路徑及遠程路徑    - 唯一標志    - 自動觸發(fā)邏輯    - 擴展屬性列表    - 插件倉庫列表

          profile通過什么配置

          通過profiles/profile標簽配置

          profile在哪里配置以及有什么區(qū)別

          在settings和pom都可以配置但是settings只能提供給pom: repository,plugin repository,以及free-form properties供pom使用可以理解為setting的profile是對pom中的profile信息的補充以達到build的目的


          profile 相關標簽說明

          • activation

          自動觸發(fā)/激活 profile 的條件邏輯
          不是激活profile的唯一方式,還可以通過命令行-P yourWantedtoActiveProfile,anotherProfiletoActive

          可以配置自動激活條件特別多,具體參考文檔

          mvn help:active-profiles
          • properties

          對profile的擴展,配置一些屬性值${x}

          注:如果該profile被激活,則可以在pom.xml中使用${user.install}。

          • profile 中 Repositories

          遠程倉庫列表,它是 maven 用來填充構建系統(tǒng)本地倉庫所使用的一組遠程倉庫。

          遠程倉庫唯一標志/名稱
          release/snapshots 配置
          遠程倉庫 url

          • pluginRepositories

          maven插件的倉庫

          • activeProfiles

          手動激活profiles的列表,配置的是在pom中配置的profile的id
          按照profile被應用的順序定義activeProfile

          不管在哪里配置的profile都記得要激活
          pom 激活方式

          <activation>    <activeByDefault>trueactiveByDefault>activation>

          settings 激活方式

                    profile_user_settings    


          與 pom 中 profile 的區(qū)別與聯(lián)系

          settings.xml 中的 profile 元素是 pom.xml 中 profile 元素的裁剪版本
          它包含了 id、activation、repositories、pluginRepositories 和 properties 元素。
          這里的 profile 元素只包含這五個子元素是因為這只關心構建系統(tǒng)這個整體

          如果一個 settings.xml 中的 profile 被激活,它的值會覆蓋任何其它定義在 pom.xml 中帶有相同 id 的 profile。
          settings 的 profile 一般是個 pom 的 profile 提供補充信息, 一般是公共的,適合所有項目的


          settings 文件是個什么東西

          從 settings.xml 的文件名就可以看出,它是用來設置 maven 參數(shù)的配置文件。并且,
          settings.xml 是 maven 的全局配置文件。而 pom.xml 文件是所在項目的局部配置。
          Settings.xml 中包含類似本地倉儲位置、修改遠程倉儲服務器、認證信息等配置。


          settings.xml 文件位置

          settings.xml 文件一般存在于兩個位置:
          全局配置: ${M2_HOME}/conf/settings.xml
          用戶配置: ????????.???????/.??2/????????????????.??????????????:


          settings和pom之間的關系

          settings 偏向于全局配置
          一般 pom 的優(yōu)先高于settings,但是他們之間的信息是相互引用的


          Servers是個什么東西

          如果需要用戶名和密碼就需要配置下 server,不適合放在 pom 中,一般定義在 settings 中,由 pom 去引用

          倉庫的下載和部署是在 pom.xml 文件中的 repositories 和 distributionManagement 元素中定義的。


          server 如何跟 repository 關聯(lián)

          該 id 與 distributionManagement 中 repository 元素的 id 相匹配


          repository/profile 標簽

          profile 可以再 settings 和 pom 中配置
          repository 無法單獨在 settings中 配置,不報錯不生效,但是可以配置到 profile 中


          repository 和 profile 的關系

          profile 會用到 repository
          repository 也可以單獨配置


          settings 和 pom優(yōu)先級

          要看具體標簽來定
          profile 是 settings 的優(yōu)先級最高
          見 repo 優(yōu)先級


          settings 和 pom 之間的關聯(lián)

          一般是 pom 會取用 setttings 中的配置
          settings 一般全局和公共的配置


          Mirrors

          用來替代某個倉庫的,一般替代中央倉庫,但是不局限于替代它。可以替代一切倉庫
          mirrorOf 來指定倉庫 id,這個 id 是 pom 文件中 repository 的 id


          mirrofOf 標簽

          mirrofOf 在哪配置

          mirrorOf 配置內容含義是什么

          mirrorOf 標簽里面放置的是 repository 配置的 id,為了滿足一些復雜的需求,Maven還支持更高級的鏡像配置


          mirrorOf 配置規(guī)則

          external:* = 不在本地倉庫的文件才從該鏡像獲取repo,repo1 = 遠程倉庫 repo 和 repo1 從該鏡像獲取*,!repo1 =  所有遠程倉庫都從該鏡像獲取,除 repo1 遠程倉庫以外* = 所用遠程倉庫都從該鏡像獲取
          maven的中央倉庫id是central, 所以mirrorOf配置為central就達到了替換maven倉庫的目的

          repostitory mirror profile關系

          repository 就是 jar 包的庫
          mirror 可以替換某個 repository
          profile 里面需要包含某個 repository


          配置鏡像倉庫

          在 settings.xml 全局配置

          <mirrors>    <mirror>        <id>aliyunid>        <name>aliyunname>        <mirrorOf>centralmirrorOf>        <url>https://maven.aliyun.com/repository/centralurl>    mirror>mirrors>


          倉庫優(yōu)先級(訪問不通或者 jar 不存在自動切換)

          見 repo 優(yōu)先級

          source: //www.jianshu.com/p/4ac4155b7cc3


          記得點「」和「在看」↓

          愛你們

          瀏覽 95
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美亚洲9 1 | 国产精品男女 | 日韩激情小说 | 欧美性爱一区二区三区 | 人妻精品久久久久中国字幕 |