Sky's blog

          我和我追逐的夢(mèng)

          常用鏈接

          統(tǒng)計(jì)

          其他鏈接

          友情鏈接

          最新評(píng)論

          ivy中文參考文檔(18)-ant任務(wù)(6)-deliver

          1) deliver

              交付當(dāng)前模塊的解析好的描述符,而且可能執(zhí)行依賴(lài)的遞歸交付。
             
              這個(gè)任務(wù)主要做兩個(gè)事情:

              1. 生成一個(gè)解析好的ivy 文件

              這個(gè)任務(wù)生成一個(gè)當(dāng)前模塊的解析好的描述符,基于最后一次解析。解析好的ivy文件包含交付的模塊的已更新信息,例如修訂版本和狀態(tài)。

              此外,所有被包含的配置的文件將包含在ivy文件中,而且變量被他們的值替代。

              最終,在解析好的ivy文件中,動(dòng)態(tài)修訂版本被在解析過(guò)程中找到的靜態(tài)的修訂版本替換,因此這些ivy文件后面可以安全的使用來(lái)獲得相同的依賴(lài)(前提條件是修訂版本唯一的標(biāo)識(shí)一個(gè)模塊,這是ivy正常使用的基礎(chǔ))。

              從1.3起 動(dòng)態(tài)修訂版本被靜態(tài)修訂版本的替換可以被關(guān)閉,因此動(dòng)態(tài)修訂版本被保留在ivy文件中。這對(duì)于發(fā)行的模塊描述符是完全解析好的推薦標(biāo)準(zhǔn)是一個(gè)例外,所以請(qǐng)小心使用。

              2. 執(zhí)行遞歸交付

              僅在delever target被設(shè)置給delever任務(wù)時(shí)才這樣做。

              如果delever target被設(shè)置,則為每個(gè)和這個(gè)任務(wù)設(shè)置的delever狀態(tài)對(duì)比沒(méi)有suffisant狀態(tài)的依賴(lài),它會(huì)被調(diào)用(通過(guò)antcall)。這意味著如果你交付一個(gè)集成修訂版本,遞歸交付不會(huì)進(jìn)行。

              如果你交付一個(gè)里程碑或者發(fā)行修訂版本,delever target將和每個(gè)集成依賴(lài)一起被調(diào)用。

              delever target被調(diào)用時(shí)有下面的屬性可用:
          • dependency.name
          • 遞歸交付的依賴(lài)的名稱(chēng)
          • dependency.published.status
          • 將交付的依賴(lài)的狀態(tài)
          • dependency.published.version
          • 將交付的依賴(lài)的修訂版本
          • dependency.version
          • 將交付的依賴(lài)的修訂版本
              dependency.published.status和dependency.published.version 要求用戶(hù)通過(guò)ant輸入任務(wù)給出(默認(rèn)行為),或者對(duì)于整個(gè)遞歸交付過(guò)程總是相同,如果下列屬性被設(shè)置:

          • recursive.delivery.status
          • 設(shè)置被要求交付的所有依賴(lài)的狀態(tài)
          • recursive.delivery.version
          • 設(shè)置被要求交付的所有依賴(lài)的版本
              通常交付任務(wù)自身引發(fā)另外一個(gè)ant build(使用ant 任務(wù)),雖然這取決于你。
              交付的ivy文件將使用那些在這里給出的更新它的依賴(lài)的修訂版本。

          2) deliver和publish

              交付任務(wù)大多數(shù)情況下并不顯式調(diào)用,而且通過(guò)publish任務(wù)自動(dòng)調(diào)用。因此,什么時(shí)候應(yīng)該顯示的調(diào)用deliver任務(wù)呢?當(dāng)你真正需要區(qū)分什么是deliver任務(wù)產(chǎn)生的,什么是publish任務(wù)產(chǎn)生的時(shí)候。或者說(shuō),上傳一個(gè)模塊到倉(cāng)庫(kù)。

              如果你想在上傳之前處理產(chǎn)生的ivy文件(如果你想自動(dòng)添加更多信息如使用SCM 標(biāo)簽,執(zhí)行release的用戶(hù),...),這將非常有用。

              如果你想觸發(fā)一個(gè)遞歸交付并保證你如依賴(lài)一樣得到遞歸交付的模塊,它也將有用。在這種情況下你的構(gòu)建的順序可能像這樣:

          - ivy:configure
          - ivy:resolve
          - ivy:deliver with recursive delivery
          - ivy:resolve again with the ivy file generated by the recursive delivery
          - do your build stuff (compile, jar, whatever)
          - ivy:publish

          3) 屬性

          屬性描述必要
          deliverpattern ivy文件交付時(shí)使用的正則表達(dá)式
          不,默認(rèn)為${ivy.deliver.ivy.pattern}
          pubrevision 發(fā)布時(shí)使用的修訂版本
          不,默認(rèn)為${ivy.deliver.revision}如果設(shè)置了,或者解析好的修訂版本如果設(shè)置了,或者時(shí)間戳
          pubbranch the branch to use for the publication
          發(fā)布時(shí)使用的分支
          不,默認(rèn)為${ivy.deliver.branch}如果設(shè)置了,或者解析好的分支如果設(shè)置了,或者沒(méi)有(分支信息將不被更新)
          pubdate the publication date to use for the publication. This date should be either 'now', or a date given with the following pattern: yyyyMMddHHmmss
          No. Defaults to 'now'
          status the status to use for the publication No. Defaults to ${ivy.status}
          delivertarget the target to call for recursive delivery No. No recursive delivery is done by default
          validate true to force ivy files validation against ivy.xsd, false to force no validation No. Defaults to default ivy value (as configured in configuration file)
          replacedynamicrev true to replace dynmic revisions by static ones in the delivered file, false to avoid this replacement (since 1.3) No. Defaults to true
          settingsRef A reference to the ivy settings that must be used by this task (since 2.0) No, 'ivy.instance' is taken by default.
          conf comma-separated list of configurations to include in the delivered file. Accepts wildcards. (since 2.0) No. Defaults to all configurations
          generateRevConstraint true to automatically generate a 'revConstraint' attribute in the deliverd file (see the dependency page for more info about this attribute), false to never generate this attribute (since 2.1.0) No. Defaults to true


          4) 例子

              交付一個(gè)ivy文件,不使用private設(shè)置:
              <deliver conf="*(public)" />

          posted on 2009-08-31 22:22 sky ao 閱讀(1315) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): project building

          主站蜘蛛池模板: 新密市| 阿尔山市| 金湖县| 平湖市| 石阡县| 大连市| 东阳市| 昔阳县| 乌兰县| 红桥区| 阳高县| 仁怀市| 房山区| 江都市| 改则县| 时尚| 砀山县| 合江县| 青岛市| 禹城市| 正安县| 汝城县| 南丰县| 孝感市| 凤翔县| 禹城市| 瓦房店市| 阿拉善左旗| 衡东县| 辰溪县| 石家庄市| 武邑县| 南木林县| 松溪县| 阿城市| 津市市| 陵川县| 安岳县| 霍州市| 凭祥市| 廊坊市|