首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Ivy 教程 (3):調整預設設定

     編輯:Java 相關知識

Ivy 三大預設儲存庫概念

Ivy 內建一套開箱即用的預設設定,核心圍繞三類儲存庫:

類型用途優先級
Local(本地/私有)開發者個人專用,優先級最高,不受團隊環境干擾1(最高)
Shared(共享)團隊共用,存放內部釋出版、公共庫缺失的模組2
Public(公共)公共儲存庫(預設為 Maven Central),提供大多數第三方模組3(最低)

解析時依優先級順序查找:Local → Shared → Public。若在 Local 找到模組(即使版本較舊),即使用該版本,忽略上層較新版本。這保證開發者可在本地覆寫依賴進行隔離開發。

快速調整儲存庫路徑與佈局

無需撰寫 ivysettings.xml,只需設定 Ant 屬性或環境變數即可覆寫預設值:

Local 儲存庫

ivy.local.default.root=/opt/ivy/repository/local
ivy.local.default.ivy.pattern=[module]/[revision]/ivy.xml
ivy.local.default.artifact.pattern=[module]/[revision]/[artifact].[ext]

Shared 儲存庫

ivy.shared.default.root=/opt/ivy/repository/shared
ivy.shared.default.ivy.pattern=[organisation]/[module]/[revision]/[type]s/[artifact].[ext]
ivy.shared.default.artifact.pattern=[organisation]/[module]/[revision]/[type]s/[artifact].[ext]

Public 儲存庫

預設為 Maven Central(ibiblio m2compatible)。若需改用其他公共源,建議改寫設定檔(見下節)。

深度客製化:模組化設定檔架構

Ivy 預設設定檔(打包在 JAR 內)採用模組化 <include> 結構:

<ivysettings>
  <settings defaultResolver="default"/>
  <include url="${ivy.default.settings.dir}/ivysettings-public.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>

你可以只替換特定片段,其餘繼承預設。例如自訂公共解析器:

<ivysettings>
  <settings defaultResolver="default"/>
  <include url="https://myserver/ivy/myivysettings-public.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-shared.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-local.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-main-chain.xml"/>
  <include url="${ivy.default.settings.dir}/ivysettings-default-chain.xml"/>
</ivysettings>

預設片段內容速覽

ivysettings-public.xml   : <ibiblio name="public" m2compatible="true"/>
ivysettings-shared.xml   : 定義 shared filesystem resolver + 路徑屬性
ivysettings-local.xml    : 定義 local filesystem resolver + 路徑屬性
ivysettings-main-chain.xml  : <chain name="main" dual="true"> shared → public
ivysettings-default-chain.xml: <chain name="default" returnFirst="true"> local → main

掌握這些片段,你就能像積木一樣組合出完全符合團隊需求的解析策略:自訂公共源、將共享庫指向 NAS、調整鏈順序、啟用/停用 dual 模式等。

結語

Ivy 的預設設定已涵蓋 80% 場景;透過屬性覆寫可解決 15% 的路徑/佈局調整;剩餘 5% 複雜需求則利用模組化 include 機制精準替換片段。建議先閱讀預設設定檔結構,再按需客製化,事半功倍。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved