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

Ivy 參考文檔:Ant 任務詳解 - resolve 解析任務

     編輯:Java 相關知識

resolve 任務概述

resolve 任務實際解析 ivy 檔案中描述的依賴,並將解析後的依賴放置到 Ivy 快取中。

若在 resolve 任務前未調用 configure 任務,則將使用預設的 configuration(等同於不帶參數調用 configure)。

解析後設定的 Ant 屬性

任務調用後,Ant 中會設定以下四個屬性:

  • ivy.organisation:用於解析的 ivy 檔案中找到的組織名
  • ivy.module:用於解析的 ivy 檔案中找到的模組名
  • ivy.revision:用於解析的 ivy 檔案中找到的修訂版本名,或指定檔案中無修訂版本時新生成的修訂版本名
  • ivy.resolved.configurations:解析好的 configuration 列表,逗號分隔

從 1.2 版起:若解析後的依賴發生變化,額外屬性 ivy.deps.changed 將被設為 true,否則為 false。

從 2.0 版起:若設定 checkIfChanged 為 false(預設 true 以向後相容),ivy.deps.changed 不會被設定。這在多配置下的多模組建構時很有用。

從 2.0 版起:若設定了 resolveId 屬性,以下屬性也將被設定:

  • ivy.organisation.${resolveId}
  • ivy.module.${resolveId}
  • ivy.revision.${resolveId}
  • ivy.resolved.configurations.${resolveId}
  • ivy.deps.changed.${resolveId}

解析摘要報告

Ivy 完成解析時會輸出摘要,例如:

---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| default | 4 | 0 | 0 | 0 || 4 | 0 |
---------------------------------------------------------------------

表格分為兩部分:

modules 部分

  • number:該配置下解析的依賴模組總數(含傳遞依賴)
  • search:需存取倉庫的依賴模組數(不在快取中、要求最新版本或根據 checkModified)
  • dwnlded:從倉庫下載的依賴 ivy 檔案數
  • evicted:被衝突管理器驅逐的依賴模組數

artifacts 部分

  • number:該配置中解析的制品總數
  • dwnlded:從倉庫實際下載的制品數

Inline 模式(1.4 起)

允許在沒有 ivy 檔案的情況下,直接指定需從倉庫解析的模組。對於安裝發布的軟體(如 Ant 任務)特別有用。當 inline="true" 時,organisation、module 和 revision 屬性用於指定要解析的模組。

注意:若要設定標準 ivy 屬性或透過其他 post-resolve 任務重用 inline 解析結果(如 retrieve, cachepath, report 等),必須設定 keep="true"。

Resolve 模式(1.4 起)

定義執行解析時 Ivy 應如何使用依賴修訂版本約束:

  • default:使用預設修訂版本約束(透過 dependency 元素的 rev 屬性)
  • dynamic:使用動態修訂版本約束(透過 dependency 元素的 revConstraint 屬性)

併發說明

解析過程中,Ivy 在解析快取中建立一個檔案,此檔案建立並非為了支援併發,意即不能在同樣的解析快取中,對同樣模組的同樣 resolveId 進行兩個併發解析。

屬性完整表

屬性描述必要預設值
file用於解析的 ivy 檔案路徑否${ivy.dep.file} 或 inline 模式下不設值
conf要解析的配置列表,逗號分隔或 '*'否${ivy.configurations}
refreshtrue 強制解析動態修訂版本,false 使用快取版本(2.0 起)否false
resolveMode此依賴解析過程使用的解析模式(2.0 起)否settings 中設定的模式
inlinetrue 使用 inline 模式,false 解析 ivy 檔案(1.4 起)否false
keeptrue 在記憶體保持解析結果,false 捨棄。false 時標準屬性不設定,post-resolve 任務無法重用結果否inline 模式預設 false,其他 true
organisationinline 模式下要解析的模組組織名(1.4 起)inline 模式下是-
moduleinline 模式下要解析的模組名稱(1.4 起)inline 模式下是-
revisioninline 模式下適用的修訂版本約束(1.4 起)否inline 模式下 "latest.integration"
branchinline 模式下要解析的分支名稱(2.1.0 起)否inline 模式下無分支
type可接受的制品類型列表(1.2 起)否${ivy.resolve.default.type.filter}
haltonfailuretrue Ivy 失敗時中止建構,false 繼續否true
failureproperty解析失敗時設定的屬性名稱(1.4 起)否無屬性設定
transitivetrue 解析傳遞依賴,false 不解析(1.4 起)否true
showprogresstrue 下載時顯示進度點,false 不顯示否true
validatetrue 強制 ivy 檔案驗證,false 強制不驗證否Ivy 預設值
settingsRef必須使用的 Ivy 設定引用(2.0 起)否'ivy.instance'
resolveId稍後引用此解析結果的 ID否'[org]-[module]'
log解析過程日誌設定(2.0 起)否'default'
checkIfChangedtrue 時比較結果與最後一次解析(2.0 起)否true

log 可選值

  • default:預設日誌,所有常規訊息輸出到控制台
  • download-only:僅輸出下載資訊,若一切在快取中則無輸出
  • quiet:所有訊息不輸出,除非發生錯誤

使用範例

<ivy:resolve file="path/to/ivy.xml"/>

解析 path/to/ivy.xml 中宣告的所有依賴。

<ivy:resolve file="path/to/ivy.xml" transitive="false" />

同上,但不解析傳遞依賴。

<ivy:resolve file="path/to/ivy.xml" conf="default, test"/>

解析 default 和 test 配置中宣告的依賴。

<ivy:resolve file="path/to/ivy.xml" type="jar"/>

解析所有依賴,但只下載 jar 制品。

<ivy:resolve organisation="apache" module="commons-lang" revision="2+" inline="true" />

從倉庫解析 commons-lang 模組的 2+ 修訂版本及其依賴。

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