1) publish
發行當前模塊的制品和已解析的描述符(已交付的ivy文件)。
這個任務的目的是發行當前模塊描述符和它的聲明的發行制品到倉庫中。
所有制品必須在這個任務調用前創建。它不會自己創建制品,而是只期望能在制品正則表達式之處的地方找到他們。
目標倉庫通過在當前ivy設置中聲明的解析器的名字來給出。查閱設置文件來獲取解析器支持制品發行的細節。
同時也發行已交付的ivy文件(除非你不想),並且甚至會deliver它,如果ivy文件沒有在上一次delever調用時交付或者forcedeliver被 設置為true。這是為什麼這個任務有很多只是為deliver有用的參數。看下面的插圖:
從1.4.1起,source artifact pattern 可以通過使用task的屬性(artifactspattern)或者使用內嵌制品元素列表(看下面的例子)來指 定。
2) 屬性
屬性
描述
必要
organisation
要發行的模塊的組織名稱
不。默認為${ivy.organisation}或者最近解析的模塊組織名稱。
module
要發行的模塊的名稱
不。默認為${ivy.module}或者最近解析的模塊名稱。
revision
要發行的模塊的修訂版本,並且也是已經發行的修訂版本除非pubrevision被設
不。默認為${ivy.revision}或者最近解析的模塊修訂版本。
artifactspattern
用於查找要發行的制品的正則表達式
不。默認為
${ivy.publish.src.artifacts.pattern}
resolver
用來發行的解析器的名稱
是
pubrevision
用於發行的修訂版本
不。默認為 ${ivy.deliver.revision}
pubbranch
用於發行的分支
不。默認為 ${ivy.deliver.branch}
forcedeliver
true強制隱式的調用deliver,false僅當用於發布的ivy文件不存在時才這樣做,從1.4起
不。默認為 false
update
true 在發行前更新ivy文件metadata(revision, branch, publication date 和 status),false相反。當在publish前使用 delive時這個通常不是必須的。
不。默認為 false
validate
true強制使用ivy.xsd做ivy文件驗證,false強制不做驗證。
不. 默認使用ivy默認值 (在 settings file中設置)
replacedynamicrev
true 在交付的文件中使用靜態修訂版本替換動態修訂版本,false 則避開這個替換,從1.3起
不。默認為 true
publishivy
true 發行交付的ivy文件,false則不
不。默認為 true
conf
用於發行的配置列表,逗號分隔
不。默認為所有配置。
overwrite
true 覆蓋倉庫中的文件如果這個修訂版本已經存在,false 保持原狀
不。默認為 false
warnonmissing
true 當要發行的制品找不到時發出警告
不。默認為 true
haltonmissing
true 當要發行的制品找不到時終止構建
不。默認為 true
srcivypattern
用於查找要發行(而且如果必要甚至是deliver)的ivy文件的正則表達式,從1.2起
不。默認為 artifactspattern 的值
pubdate
用於交付的發行日期,如果必要。這個日期可以是'now',或者是通過以下模式的給出的時間: yyyyMMddHHmmss
不。默認為 'now'
status
the status to use for the delivery, if necessary
用於交付的status,如果需要
不。默認為 ${ivy.status}
delivertarget
用於遞歸交付的需要調用的target
不。默認不做遞歸交付。
settingsRef
必須被這個任務使用的ivy設置的引用(從2.0起)
不,默認使用'ivy.instance'
3) 示例
<ivy:publish resolver="local" pubrevision="1.0">
<artifacts pattern="1/[artifact].[ext]" />
<artifacts pattern="2/[artifact].[ext]" />
</ivy:publish>
使用local解析器用修訂版本1.0來發行最後解析的模塊,在目錄1和2中查找制品。