Sky's blog

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

          常用鏈接

          統(tǒng)計(jì)

          其他鏈接

          友情鏈接

          最新評(píng)論

          ivy中文參考文檔(5)-ivy如何工作

              前面已經(jīng)介紹了ivy主要的術(shù)語(yǔ)和概念,現(xiàn)在是時(shí)候說(shuō)明ivy如何工作的了。

              不同位置下模塊的通常周期


              更多細(xì)節(jié)請(qǐng)查考ant任務(wù)。

          一. 配置

              ivy需要配置以便能夠解析依賴。這個(gè)配置通常是通過(guò)配置文件來(lái)完成的,配置文件定義了一系列的依賴解析器。每個(gè)解析器能夠發(fā)現(xiàn)ivy文件和/或制品,提供簡(jiǎn)單信息諸如組織,模塊,修訂版本,制品名字,制品類型和制品擴(kuò)展名。

              配置通常負(fù)責(zé)支出哪個(gè)解析器應(yīng)該用于解析哪個(gè)模塊。這個(gè)配置僅僅取決于你的環(huán)境,例如,在哪里可以找到模塊和制品。

              當(dāng)沒有給出任何配置時(shí)將使用默認(rèn)配置。這個(gè)配置實(shí)用ivyrep來(lái)解析所有模塊。

          二. 解析

              解析的時(shí)間是當(dāng)ivy實(shí)際解析一個(gè)模塊的依賴的時(shí)刻。它第一次需要訪問模塊的ivy文件來(lái)解析依賴。

              然后,在這個(gè)文件中定義的每個(gè)依賴,它將請(qǐng)求適當(dāng)?shù)慕馕銎?根據(jù)配置)來(lái)查找模塊(例如,可能是一個(gè)ivy文件,或者如果沒有找到ivy文件則是它的制品)。它同樣使用基于緩存的文件系統(tǒng)以避免請(qǐng)求一個(gè)已經(jīng)存在在緩存中的依賴。

              如果解析器是組合而成的(例如鏈?zhǔn)交蛘唠p重解析器),為了查找模塊可能實(shí)際調(diào)用多個(gè)解析器。

              當(dāng)找到依賴模塊,它的ivy文件被下載到ivy緩存。然后ivy檢查它是否有它自己的依賴,在這種情況下循環(huán)游歷依賴圖。

              在整個(gè)游歷過(guò)程中,盡可能快的進(jìn)行沖突管理來(lái)阻止對(duì)模塊的訪問。

              當(dāng)ivy游歷完整個(gè)圖形,它請(qǐng)求解析器去下載每個(gè)依賴相應(yīng)的不在緩存中并且不被沖突管理器排斥的制品。所有的下載都將加入到ivy緩存中。

              最后,在緩存中將生成一個(gè)xml報(bào)告,讓ivy可以容易的得知模塊有哪些依賴而不必在此游歷整個(gè)圖型。

              在這個(gè)解析步驟之后,可能有兩個(gè)主要步驟:要不創(chuàng)建一個(gè)帶有緩存中制品的路徑,要不復(fù)制他們到另外一個(gè)目錄結(jié)構(gòu)。

          三. 獲取

              在ivy中被稱為獲取的是從緩存中復(fù)制制品到另外的目錄結(jié)構(gòu)的行為。這個(gè)行為是通過(guò)使用模式來(lái)實(shí)現(xiàn),模式為ivy指明這些文件可以從哪里復(fù)制。

              為此,ivy使用緩存中它將獲取的模塊對(duì)應(yīng)的xml報(bào)告來(lái)獲知哪些制品應(yīng)該被復(fù)制。

              為了達(dá)到最佳性能它也檢查文件是否沒有被復(fù)制。

          四. 從緩存中生成路徑

              在某些情況下,直接使用緩存中的制品更加合適。ivy能夠使用在解析時(shí)生成的xml報(bào)告來(lái)生成一個(gè)包含所有需要的制品的路徑。

              當(dāng)為IDE生成插件時(shí)這個(gè)方式特別有效。

          五. 報(bào)告

              ivy也可以生成方便閱讀的依賴解析的報(bào)告描述。

              這個(gè)是通過(guò)使用一個(gè)簡(jiǎn)單的xsl轉(zhuǎn)換在解析時(shí)生成的xml報(bào)告來(lái)實(shí)現(xiàn)的。

          六. 發(fā)布

              最后,ivy可以被用于發(fā)布一個(gè)模塊的特別的修訂版本,以便這個(gè)版本在未來(lái)的解析中可以得到。這個(gè)任務(wù)通常被手工或者被一個(gè)持續(xù)集成服務(wù)器調(diào)用。

          posted on 2009-07-08 23:37 sky ao 閱讀(1727) 評(píng)論(0)  編輯  收藏 所屬分類: project building

          主站蜘蛛池模板: 洞口县| 永福县| 宁海县| 五指山市| 沙洋县| 铜陵市| 师宗县| 定州市| 灌阳县| 东兴市| 溧阳市| 休宁县| 资溪县| 惠来县| 左贡县| 临泽县| 兴义市| 玉溪市| 卢氏县| 永丰县| 沿河| 象州县| 巴彦淖尔市| 黄龙县| 郓城县| 肥东县| 南江县| 南丰县| 蒙自县| 永春县| 洪雅县| 神池县| 临沭县| 桐梓县| 绥滨县| 宁波市| 钟祥市| 岳阳县| 安阳县| 云梦县| 江津市|