1) retrieve
retrieve任務復制解析好的依賴到你的文件系統的任何位置。
這是一個post resolve任務,帶有所有post resolve任務共有的所有的行為和屬性。
從1.4起 這個任務甚至可以根據依賴解析的結果用實際應該存在的東西來同步目標目錄。這意味著如果設置sync為"true",ivy不僅將 復制必要的文件,而且它還會刪除那些不再需要在那裡的文件。
同步實際上是刪除root目標目錄下不再是retrieve任務必須的所有文件和目錄。
root目標目錄是 在目標正則表達式中的標示為第一級別的第一個標記的目錄。
例如:
pattern: lib/[conf]/[artifact].[ext]
root: lib
2) 屬性
屬性 描述 必要 pattern the pattern to use to copy the dependencies
3) 示例
1.
<ivy:retrieve />
使用默認參數獲取依賴。這通常獲取最後一次解析調用的所有依賴到lib目錄中。
2.
<ivy:retrieve pattern="${lib.dir}/[conf]/[artifact].[ext]"/>
獲取最後一次解析調用的所有依賴到lib目錄中,依賴將分隔在按照組織命名的目錄中,每個conf目錄包含對應的不帶修訂版本的制品 。
例如,如果ivy文件聲明了兩個配置default和test,結果lib目錄將會像這樣:
lib
default
commons-lang.jar
commons-logging.jar
test
junit.jar
注意如果一個依賴被兩個配置要求,它將被復制到兩個目錄中。這個依賴的下載將只在resolve的時候進行一次。
3.
<ivy:retrieve pattern="${lib.dir}/[conf]/[artifact].[ext]" sync="true" />
和前面相同,但是開啟同步。
例如,如果ivy文件聲明了兩個配置default和test,結果lib目錄將會像這樣:
lib
default
commons-lang.jar
commons-logging.jar
test
junit.jar
現在假設commons-logging 不再是默認配置的一部分,然後新的retrieve調用將會產生如下結果:
lib
default
commons-lang.jar
test
junit.jar
如果不開啟同步,commons-logging將不會被這次調用刪除。
4.
<ivy:retrieve pattern="${lib.dir}/[type]/[artifact]-[revision].[ext]" conf="runtime"/>
僅僅獲取配置runtime依賴到用制品類型命名的目錄中。結果lib目錄將類似這樣:
lib
jar
commons-lang-1.0.jar
looks-1.1.jar
source
looks-1.1.zip
5.
<ivy:retrieve organisation="foo" module="bar" inline="true" pattern="${my.install.dir}/[artifact]. [ext]"/>