版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Ant持續(xù)集成(CI)Apache Ant 提供了豐富的核心任務(wù)以及擴展任務(wù)來完成持續(xù)集成過程中的各項工作,同時開源社區(qū) Ant-Contrib 提供的 Ant 任務(wù)更是大大增強了 Ant 的可編程性,使得 Ant 有能力完成更為復(fù)雜的邏輯操作。基本的持續(xù)集成環(huán)境一個持續(xù)、穩(wěn)定的構(gòu)建是整個持續(xù)集成過程中的關(guān)鍵。在每個迭代周期的開發(fā)過程中, 軟件開發(fā)團隊應(yīng)當及時將最新的功能代碼進行提交和構(gòu)建 該能夠獲取經(jīng)過驗證后的最新的產(chǎn)品構(gòu)建,并將其打包成可交付產(chǎn)品或進行線上產(chǎn)品的更 新,交由產(chǎn)品的項目關(guān)系人或最終客戶進行使用,確??蛻粜枨笈c軟件產(chǎn)品一致。目前在Web 2.0 應(yīng)用的敏捷開發(fā)過程中多采用這樣一
2、種集成環(huán)境,以滿足 Web 2.0 應(yīng)用最為典型的“Always Beta”特性。下圖展示了一種基本的持續(xù)集成環(huán)境的拓撲結(jié)構(gòu)。1. 持續(xù)集成環(huán)境的拓撲結(jié)構(gòu)持續(xù)構(gòu)建服務(wù)器上的 Ant 腳本首先從源代碼管理庫獲取最新的代碼,并按照特定的構(gòu)FTP 服務(wù)器(FVT) (SVT) 環(huán)境則包括了測試服務(wù)器和測試數(shù)據(jù)等信息,其上的 Ant 腳本則負責從 FTP 服務(wù)器獲取最新的構(gòu)建,提取更新所需的產(chǎn)品代碼(如果需要,還要提取必要的數(shù)據(jù)庫更新腳本,完成數(shù)據(jù)庫架構(gòu)的重構(gòu))來完成測試環(huán) 運行環(huán)境,其上的 Ant 腳本可以將通過測試的構(gòu)建生成可交付的產(chǎn)品或線上產(chǎn)品更新包, 這一過程常伴隨產(chǎn)品版權(quán)信息驗證、產(chǎn)品包壓縮
3、以及產(chǎn)品部署等動作。Ant 如何幫助持續(xù)集成Ant 作為 Java 開發(fā)領(lǐng)域應(yīng)用最為廣泛的自動構(gòu)建工具,不僅可以幫助開發(fā)團隊實施構(gòu)建包以完成后續(xù)的產(chǎn)品測試與發(fā)布工作化。本文不會對 Ant 的基本概念和所有任務(wù)進行逐一介紹,而是將作者在實踐過程中認為對持續(xù)集成有所幫助的概念和任務(wù)加以解釋闡明,以期讀者更好地了解 Ant 的能力,并加以靈活的運用。 ( ) 任務(wù)提供了在一個構(gòu)建腳本內(nèi)調(diào)用外部腳本特定目標(target)的能力,這種能計一個獨立的控制腳本,借助 任務(wù)使其通過調(diào)用不同的項目構(gòu)建腳本完成整體項目的集成,這樣做的一個最明顯好處是使我們可以快速的適應(yīng)項目變動,符合隨需應(yīng)變On Demand)
4、的開發(fā)模式。 任務(wù)區(qū)別于 任務(wù)之處在于,其只能調(diào)用同一個構(gòu)建腳本之內(nèi)的構(gòu)建目標,他所提供的是對一個構(gòu)建腳本自身的清晰管理。以往依賴于 depends 屬性的方式使得我們很容易迷失在復(fù)雜的目標依賴關(guān)系中,而使用 則能夠?qū)⒚總€構(gòu)建腳本的任務(wù)以顯式的、易修改的方式呈現(xiàn)給項目構(gòu)建者。 ant-contrib 開源項目提供的擴展任務(wù),是增強版本的 和 任務(wù),他們不僅具備前二者的基本能力,還可以返回外部腳本或同腳本其他目標中的屬性,可類比編程語言中帶返回值的方法調(diào)用。Available Condition在構(gòu)建過程中,構(gòu)建腳本不可避免地會對許多外部資源(文件,目錄,URL 等)進行 可用性。 任務(wù)可以幫助
5、我們對各種外部資源進行判斷,通過設(shè)置相應(yīng)的屬性來表明判斷結(jié)果,進而引導后續(xù)的構(gòu)建操作。 (nested element)/ 等,具備了對資源進行更加復(fù)雜的邏輯判斷能力。For If當我們使用 Ant 腳本編寫一些較為復(fù)雜的邏輯功能,比如循環(huán)和流程判斷時,自然希望 Ant 能支持這種編程能力。然而 Ant 核心任務(wù)中并沒有提供 任務(wù),只是在 任務(wù)的屬性中支持 if module-A-present build-module-A 目標。但是,必須注意的一點是,這里的 if 并不是判斷 module-A-present 屬性是否設(shè)置為特定值,而僅僅是檢查該屬性是否被設(shè)置了,因而其可編程性并不是很強。
6、Ant-contrib 為 Ant 提供了與通常所使用的編程語言功能相同的 和 任務(wù),在構(gòu)建過程中靈活運用這兩個任務(wù),將大大增強 Ant 對邏輯操作的控制能力,這其實就是XML 腳本的編程。在具體的實踐過程,有一點需要特別注意:在使用 任務(wù)的過程中,如果我們期望在循環(huán)體內(nèi)使用一個變量,而非 Ant 的 property,則需借助由 ant-contrib 提供的 任務(wù)(ant-contrib 任務(wù))來實現(xiàn)。盡管這與 property 的值一經(jīng)設(shè)置便無法改變的設(shè)計原則相抵,但有時能夠給構(gòu)建腳本很大程度上的靈活性。Replace ReplaceRegExp在由開發(fā)構(gòu)建包向產(chǎn)品構(gòu)建包轉(zhuǎn)變的過程中之一
7、 , 比如我們不能假設(shè)用戶會將 JDK 安裝在與開發(fā)環(huán)境相同的路徑下,這時便可以使ant 任務(wù), 任務(wù)可以針對特定的字符串的執(zhí)行替換操作。不僅Ant 任務(wù),還可以實現(xiàn)基于正則表達式的替換。例如,要將 test.bat 文件中的行首“java”字符串替換為“././java/bin/java”而不影響其他“java”字符串,可以使用如下 ant 腳本:Filterchain MapperFilterchain 和 Mapper 是在集成腳本中經(jīng)常用到的 ant Filterchain 增強了面向數(shù)據(jù)傳輸?shù)?ant 任務(wù)的能力,如 Concat,Copy,Loadproperties 和 Move
8、,借助于各種不同功能的 filter,使得這些任務(wù)具備了數(shù)據(jù)篩選和處理的能力,非常類似于 Unix 系統(tǒng)中的管道的概念。例如,要實現(xiàn)將 A 文件夾復(fù)制到 B 文件夾,同時對 B 文件夾中所有 jsp 文件的文copyright.txt ant 腳本。Mapper Copy,Move Unzip 任務(wù)中,它的作用在于為這些任務(wù)增加指定 來指定源文件集,更可以通過各種不同功能的 mapper建持續(xù)集成環(huán)境中起到了極為靈活的作用ant 腳本。Taskdef CVS,SVN 或 IBM ClearCase 作為項目源代碼庫,使用Apache Tomcat,IBM WebSphere Applicati
9、on 作為測試或產(chǎn)品環(huán)境的部署服務(wù)器,使用LiquiBase,DBdeploy Ant 借助其易擴展的特性, 對所有這些工具提供了很好的支持,外部工具的提供者只要實現(xiàn)特定的 Ant 任務(wù)接口,就Ant Ant 任務(wù),Ant 腳本來管理整個集成環(huán)境的目的。實現(xiàn)一個基本的持續(xù)集成環(huán)境在一個典型的線上 Web 2.0 應(yīng)用的迭代開發(fā)周期中,持續(xù)集成通常涉及構(gòu)建、部署、(比如 基于 Java EE WAR 或 EAR 文件)。因此,在構(gòu)建服務(wù)器上調(diào)用一個綜合性的 Ant 構(gòu)建腳本(清單 1),產(chǎn)生其它動作所需要的產(chǎn)品包,則成為整個持續(xù)集成過程中最為核心的一步。清單 1. 產(chǎn)生其它動作所需要的產(chǎn)品包不難
10、看出, 任務(wù)通過調(diào)用不同的任務(wù)組合達到了為不同構(gòu)建目的提供不同構(gòu)建動作的目的,其中包括對“冒煙”測試,功能測試以及產(chǎn)品環(huán)境安裝的特定支持,而各個環(huán)境所需要的產(chǎn)品包也因 任務(wù)目標的不同而不同,這種松散組合的方式為今后腳本的維護和更新提供了良好的基礎(chǔ)。在為產(chǎn)品環(huán)境提供產(chǎn)品包(perform_productBuild)的目標中, 擴展任務(wù)通過調(diào)用外部的 checkLicese.xml 腳本來對產(chǎn)品進行版權(quán)核查,任何沒有版權(quán)信息的文本文件都將被記錄到 reportFile 中。雖然類似的這種功能可以使用多種腳本語言來方便的實Python Ruby Ant Ant 腳本2 Ant 實現(xiàn)版權(quán)信息檢查的部分腳本。2. Ant 實現(xiàn)版權(quán)信息檢查的部分腳本parator對于測試環(huán)境和產(chǎn)品環(huán)境而言,獲取產(chǎn)品包并自動的進行產(chǎn)品部署是兩者共同的首要工 Ant 具備了良好的跨平臺能力,我們不必為不同的部署環(huán)境(Windows 或 Linux)去編寫不同的部署腳本,只需將精力集中于產(chǎn)品包的獲取和針對不同應(yīng)用服務(wù)器的部署即可,清單 3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年河源市連平縣人民代表大會常務(wù)委員會辦公室公開招聘編外人員備考題庫及答案詳解1套
- 4K神經(jīng)內(nèi)鏡在鞍結(jié)節(jié)手術(shù)中優(yōu)勢
- 3D打印生物支架在神經(jīng)再生中的安全評估策略
- 3D打印植入物在復(fù)雜骨缺損修復(fù)中的優(yōu)勢
- 3D打印引導下宮頸癌放療劑量梯度與腎保護策略
- 2025年內(nèi)蒙古交通集團有限公司社會化公開招聘備考題庫有答案詳解
- 3D打印人工晶狀體的光學性能測試
- 2025年嘉峪關(guān)市教育系統(tǒng)公開招聘公費師范畢業(yè)生和小學全科型教師37人備考題庫及一套答案詳解
- 2025年江西省贛房投資集團有限公司社會招聘備考題庫帶答案詳解
- 小學信息技術(shù)課程微型垂直農(nóng)場系統(tǒng)中的編程與控制教學研究課題報告
- 年產(chǎn)50萬噸碳酸鈣項目可行性研究報告
- 施工現(xiàn)場的安全溝通與應(yīng)急響應(yīng)方案
- 扎蘭屯護理單招題庫及答案解析
- 實施指南(2025)《AQ 4272-2016鋁鎂制品機械加工粉塵防爆安全技術(shù)規(guī)范》
- 君子蘭養(yǎng)花知識培訓班課件
- 技術(shù)交易創(chuàng)新創(chuàng)業(yè)項目商業(yè)計劃書
- 述職報告?zhèn)€人優(yōu)勢劣勢
- 初一競賽試題及答案
- 律師辦理建設(shè)工程法律業(yè)務(wù)操作指引
- 尺橈骨骨折手術(shù)配合課件
- 煤礦建設(shè)安全規(guī)范
評論
0/150
提交評論