国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SVN的應用軟件持續(xù)集成

2016-11-17 10:13:09劉立康
計算機測量與控制 2016年3期
關鍵詞:代理服務器源代碼腳本

姜 文,劉立康

(西安電子科技大學 通信工程學院,西安 710071)

?

基于SVN的應用軟件持續(xù)集成

姜 文,劉立康

(西安電子科技大學 通信工程學院,西安 710071)

隨著軟件開發(fā)技術的發(fā)展,軟件配置管理和持續(xù)集成已經(jīng)成為軟件開發(fā)過程中的一個重要組成部分;為了在軟件開發(fā)過程中正確應用這些新技術,需要開展這方面的研究工作;結(jié)合工作實踐,以SVN作為配置管理工具,分析了持續(xù)集成工具ICP-CI的特點、部署方式和運行機制;詳細敘述了ICP-CI持續(xù)集成構(gòu)建工程的搭建過程,搭建過程包括配置管理工具SVN客戶端安裝、基于SVN的代碼更新、靜態(tài)檢查、編譯、打包,版本包的自動化測試;構(gòu)建工程的各個階段都可能出現(xiàn)錯誤,導致構(gòu)建失敗,通過對構(gòu)建失敗原因的分析,將構(gòu)建失敗分為3類并給出相應的解決方案;最后介紹了一個典型工作案例;工作實踐表明在軟件的開發(fā)過程中采用基于SVN的持續(xù)集成,可以提高軟件質(zhì)量和軟件開發(fā)效率,降低軟件開發(fā)成本。

持續(xù)集成;ICP-CI;ICP-CI服務器;構(gòu)建;SVN

0 引言

隨著軟件開發(fā)技術的不斷發(fā)展,軟件持續(xù)集成[1-5](continuous integration)和配置管理[6-8]已經(jīng)成為軟件開發(fā)過程中的一個重要組成部分。目前國內(nèi)比較常用的軟件配置管理的工具有ClearCase、SVN、 Git等。ClearCase適合大型軟件團隊使用。SVN是開源軟件,適合中小型軟件團隊使用。Git是一種新的分布式開源軟件,具有很好的應用前景。持續(xù)集成技術已經(jīng)由最初實現(xiàn)簡單的軟件編譯驗證,發(fā)展到目前可以進行軟件源代碼代碼質(zhì)量監(jiān)控與管理、軟件版本出包、軟件版本集成驗證等各個方面。

本文以SVN作為配置管理工具,持續(xù)集成工具ICP-CI為例介紹持續(xù)集成技術。分析了持續(xù)集成工具ICP-CI的特點,部署方式和運行機制。詳細敘述了ICP-CI持續(xù)集成構(gòu)建工程的搭建過程。最后介紹了一個典型工作案例。

1 持續(xù)集成系統(tǒng)架構(gòu)

持續(xù)集成包括以下基本要素:開發(fā)人員、配置庫、集成構(gòu)建系統(tǒng)(ICP-CI服務器)和反饋機制。ICP-CI服務器提供了針對SVN的接口。持續(xù)集成步驟如下:

1)開發(fā)人員向SVN配置庫提交代碼。

2)鎖庫后,下載代碼到ICP-CI服務器完成構(gòu)建工作。若構(gòu)建成功,提供新的代碼版本。

3)ICP-CI服務器通過電子郵件向項目經(jīng)理和開發(fā)人員反饋構(gòu)建信息。

4)ICP-CI服務器輪詢配置庫中的變更。

2 ICP-CI服務器部署與運行原理

2.1 ICP-CI服務器的部署

根據(jù)開發(fā)項目的代碼規(guī)模、編譯環(huán)境、編譯工具來選擇ICP-CI服務器的CPU、內(nèi)存等硬件配置和操作系統(tǒng)。一套ICP-CI服務器很可能同時承擔多個軟件產(chǎn)品版本的持續(xù)集成工作。

ICP-CI服務器系統(tǒng)有兩種常見的部署形式[9-11]單機式和主控式。

單機式是指整套ICP-CI服務器系統(tǒng)由一臺服務器組成,該服務器自主完成持續(xù)集成任務,這種系統(tǒng)適用于代碼量小于一百萬行的開發(fā)團隊。

主控式是指整套ICP-CI服務器系統(tǒng)由一臺主控服務器和多臺代理服務器組成,主控服務器根據(jù)代理服務器的工作標簽,將持續(xù)集成任務下發(fā)到各個代理服務器上,任務完成之后將任務結(jié)果和日志文件發(fā)回到主控服務器。

根據(jù)編譯環(huán)境的不同持續(xù)集成工具ICP-CI分為不同的版本。在Windows環(huán)境下,主控服務器部署工具為ICP-CI-Windows-Master,代理服務器部署ICP-CI-Windows-Agent。在Linux環(huán)境下主控服務器部署工具為ICP-CI-Linux-Master,代理服務器部署ICP-CI-Linux-Agent。持續(xù)集成工具ICP-CI是跨平臺的,主控服務器和代理服務器可以選擇不同的操作系統(tǒng)。多數(shù)情況主控服務器選擇安裝Windows操作系統(tǒng)的環(huán)境。

ICP-CI工具需要解壓安裝包之后安裝。主控服務器安裝ICP-CI-Windows-Master之后,需要進入ICP-CI-Windows-Master下的master目錄,執(zhí)行批處理啟動MYSQL數(shù)據(jù)庫后,啟動ICP-CI的網(wǎng)頁版頁面。對于ICP-CI-Windows-Agent和ICP-CI-Linux-Agent將安裝包解壓之后,需要將安裝ICP-CI-Windows-Master的服務器IP地址配置到agent文件夾下conf文件夾對應的配置文件中,再執(zhí)行批處理腳本啟動代理服務器的CI進程。

2.2 ICP-CI運行原理

2.2.1 單機式運行機制

單機式運行比較簡單,當構(gòu)建工程運行時構(gòu)建任務在本機運行,運行完成后,將構(gòu)建任務的日志收集到ICP-CI-Windows-Master軟件的日志路徑下。

2.2.2 主控式運行機制

目前主控式的構(gòu)建環(huán)境用的比較多。在主控式的構(gòu)建環(huán)境中,主控服務器與代理服務器的運行機制如下圖1所示。

圖1 主控式持續(xù)集成環(huán)境的運行機制

在主控式持續(xù)集成系統(tǒng)中,主控服務器下發(fā)構(gòu)建任務給代理服務器,監(jiān)控與管理代理服務器的構(gòu)建任務運行情況,在ICP-CI工具的頁面上顯示任務運行情況,同時發(fā)送郵件給特定郵件群組。

代理服務器接受主控服務器下發(fā)的構(gòu)建任務,完成構(gòu)建任務之后將構(gòu)建日志與運行結(jié)果反饋回主控服務器。

3 ICP-CI構(gòu)建工程搭建

3.1 從SVN客戶端下載代碼

ICP-CI服務器通常需要安裝SVN命令行工具和圖形SVN客戶端工具。對于Windows操作系統(tǒng)在安裝完成命令行工具和圖形客戶端工具之后,可以選擇安裝支持中文操作的軟件包,以便支持中文操作。

完成SVN工具的安裝之后,根據(jù)配置管理工程師提供的產(chǎn)品代碼配置庫路徑,使用SVN客戶端工具的“SVN檢出(check out)”功能從配置庫下載代碼到代理服務器的指定路徑下。

3.2 搭建構(gòu)建工程

打開ICP-CI的網(wǎng)頁頁面,持續(xù)集成工程師在ICP-CI的頁面上創(chuàng)建以“軟件產(chǎn)品名稱+版本號”為名稱的構(gòu)建工程。構(gòu)建工程創(chuàng)建成功之后,編寫各類任務腳本,分別配置代碼更新、靜態(tài)檢查、進程編譯、出包、自動化用例測試等步驟。

3.2.1 基于SNV的代碼更新

每天在配置庫開庫到鎖庫的時間段開發(fā)工程師提交代碼到配置庫中。SVN配置庫鎖庫后,持續(xù)集成工程師在搭建持續(xù)集成構(gòu)建工程時,調(diào)用SVN的“update”命令實現(xiàn)將軟件產(chǎn)品配置庫的代碼更新代理服務器上的代碼視圖。

使用ICP-CI創(chuàng)建代碼視圖的創(chuàng)建更新任務時,需要撰寫代碼更新的批處理腳本(Linux環(huán)境需要撰寫Shell腳本),把代碼更新的腳本配置在任務中。更新代碼的批處理腳本內(nèi)容如下所示:

::配置需要更新代碼的視圖路徑

SET CODE_PATH=D:/CodeView /Code

::解除代碼視圖中的文件鎖定

svn cleanup %CODE_PATH%

::更新代碼到視圖路徑

svn update %CODE_PATH% --accept postpone

3.2.2 靜態(tài)檢查

靜態(tài)檢查[12]方法包括兩類,一種是通過常規(guī)的人工代碼檢視來發(fā)現(xiàn)問題,另外一種是使用靜態(tài)檢查軟件進行代碼靜態(tài)檢查。

常規(guī)的人工代碼檢視,能發(fā)現(xiàn)少量的內(nèi)存越界和資源泄漏問題,依賴于參與檢查人員的技術水平和當時的精神狀態(tài)。人工檢查方法進行內(nèi)存越界和泄漏檢查效率比較低,成本較高,雖然可能發(fā)現(xiàn)一些深層次的代碼缺陷,往往不如靜態(tài)檢查軟件檢查發(fā)現(xiàn)代碼缺陷的效率高。

靜態(tài)檢查是指使用自動化工具對程序源代碼進行檢查,以分析產(chǎn)品源代碼行為的技術,應用于源代碼的正確性檢查、安全缺陷檢測、代碼優(yōu)化等。它的特點是不需要執(zhí)行程序。

軟件產(chǎn)品使用C/C++來編碼時,采用的靜態(tài)檢查工具為Pclint;Pclint是C/C++代碼靜態(tài)檢查工具,支持幾乎所有流行的編輯環(huán)境和編譯器。當軟件產(chǎn)品代碼使用java語言,通常采用Findbugs和Checkstyle作為靜態(tài)檢查工具。本文以由Pclint工具為例描述靜態(tài)檢查的配置過程。Pclint工具主要由以下這些文件組成,如下表1所示。

ICP-CI工具運行Pclint時,需要持續(xù)集成工程師根據(jù)產(chǎn)品各編譯模塊名稱來命名幾類*.lnt文件。需要配置的*.lnt文件類型如表2所示。

表1 Pclint工具的文件組成

表2 產(chǎn)品模塊需要配置的*.lnt文件類型

產(chǎn)品各模塊進行pclin檢查t時,需要在include_模塊名.lnt文件中包含各模塊需要被編譯的源代碼的路徑。include_模塊名.lnt文件配置內(nèi)容如下所示:

-ID:INCWIN32

-ID:INCLINUX

-ID:INCLINUX〗-I%PROJECT_PATH%platform

-I%PROJECT_PATH%host

持續(xù)集成工程師在構(gòu)建工程的ICP-CI的任務頁面上,創(chuàng)建產(chǎn)品代碼的pclint任務時把調(diào)用“std_模塊名.lnt”配置在任務中。構(gòu)建工程在執(zhí)行時,參于運行pclint任務的代理服務器使用pclint工具檢查軟件產(chǎn)品C/C++代碼的各種缺陷。

3.2.3 編譯

產(chǎn)品代碼在編譯過程中為出包步驟生成進程文件,也可以查找各種編譯錯誤與編譯告警。各模塊的編譯腳本路徑、編譯腳本與編譯器需要在構(gòu)建工程的ICP-CI的任務頁面上完成配置。

當產(chǎn)品的進程文件需要在Linux操作系統(tǒng)下完成編譯鏈接,需要在ICP-CI-Linux-Agent代理服務器上安裝編譯器gcc-4.3.4,安裝步驟如下所示:

a.將gcc的安裝包拷貝到代理服務器opt目錄下,執(zhí)行tar xzvf gcc_install.tar.gz

b.進入解壓之后的gcc_install目錄

c.執(zhí)行rpm -ivh *.rpm

d.將/opt/gcc_install/make拷貝到/usr/bin下

e.執(zhí)行./ipsec.sh,開始安裝gcc-4.3.4。

gcc編譯器安裝完成之后,在代理服務器上執(zhí)行:“gcc -v”,如果可以查看到gcc版本的版本號則表明gcc編譯器安裝成功了。

以dbg模塊為例,在構(gòu)建工程的ICP-CI的任務管理頁面配置編譯模塊名稱dbg,分別配置dbg模塊的編譯任務,并將dbg模塊的編譯腳本make_std_dbg.sh以及dbg模塊編譯腳本路徑配置到編譯任務中。make_std_dbg.sh編譯腳本內(nèi)容如下所示:

CUR_SH_PATH=’pwd’

CODE_ROOT_PATH={CUR_SH_PATH}/../

echo “change attribute=CODE_ROOT_PATH”

chmod -R 775 CODE_ROOT_PATH

./ims_make.sh std9000 dbg mcca

3.2.4 出包

編譯任務完成后,將編譯生成的所有模塊的進程文件和一些產(chǎn)品的配置文件通過在ICP-CI工具的軟件構(gòu)建工程運行出包步驟,生成可以直接安裝產(chǎn)品的軟件包。出包腳本是用Ant編寫,為了能方便調(diào)用Ant腳本,需要將ICP-CI工具tool目錄下的Ant工具的路徑添加到環(huán)境變量的path路徑下。ICP-CI工具需要在構(gòu)建工程的ICP-CI的任務頁面配置出包任務package,將出包腳本task_custom_package.xml配置到任務中。出包腳本內(nèi)容如下所示:

//生成版本包

3.2.5 自動化用例測試

在構(gòu)建工程的ICP-CI的任務頁面上完成測試用例任務的配置。在測試用例環(huán)境下對版本包進行自動化測試,完成版本包的初步測試。

持續(xù)集成采用的HLT(HIGH LEVEL TEST)自動化測試。HLT通常指SDV(系統(tǒng)設計驗證)/SIT(系統(tǒng)集成測試)/SVT(系統(tǒng)驗證測試)等測試活動。HLT是站在系統(tǒng)的角度對整個版本進行測試,測試的對象是一個完整的產(chǎn)品而不是產(chǎn)品內(nèi)部的模塊,常見的HLT測試包括系統(tǒng)測試和驗收測試。

使用ICP-CI工具執(zhí)行自動化測試,需要將自動化用例的執(zhí)行工具集成到ICP-CI工具中。自動化執(zhí)行工具可以自動完成測試用例管理、測試環(huán)境配置、測試版本自動安裝與卸載、自動化測試用例執(zhí)行等任務。

如果出包階段生成的版本包能夠完成HLT自動化測試則證明版本包的基本功能沒有問題。版本包可以合入代碼配置庫的特性與問題單,作為進行驗證性測試的版本;也可以作為測試人員回歸問題單的版本。

使用ICP-CI工具完成HLT任務,需要在構(gòu)建工程的ICP-CI任務管理頁面配置HLT任務。配置HLT任務需要配置產(chǎn)品的自動化測試用例庫名稱、自動化測試服務管理系統(tǒng)名稱、自動化測試端口號(通常為8080)、控制HLT任務下發(fā)的配置文件的路徑和VersionReleaseInfo.ini文件。VersionReleaseInfo.ini文件的配置內(nèi)容如下所示:

[Summary_Info]

IssueTime=2015-01-23_02.00.11

cVersion=產(chǎn)品名稱 版本號_CI

bVersion=產(chǎn)品名稱 版本號_CIB000 //持續(xù)集成自動化測試用例庫

IssueStatus=0

VerDescription=版本號

CmsType=DailyTest

Priority=0

[STD_LEM_SRV]

Version=版本號

Directory=出包任務完成之后,需要將版本包拷貝的路徑

Filename=版本包名稱

ICP-CI工具通過執(zhí)行相應的ANT腳本將出包步驟生成的版本包拷貝到Directory參數(shù)配置的路徑下,通過以下步驟來完成HLT任務:

(1)更新VersionReleaseInfo.ini配置文件的IssueTime,觸發(fā)CIMonitor工具;

(2)根據(jù)bVersion參數(shù)配置,CIMonitor工具提交測試集中控制中心持續(xù)集成自動化測試任務;

(3)測試集中控制中心將任務下發(fā)至執(zhí)行測試用例的執(zhí)行機,承擔測試任務的執(zhí)行機,需要卸載前一次的測試用例版本庫,卸載后安裝本次測試用例版本庫。版本庫安裝完成后,開始執(zhí)行測試用例;

(4)當所有測試用例執(zhí)行完成之后將執(zhí)行結(jié)果從用例執(zhí)行機、測試集中控制中心、CIMonitor工具一層層反饋到ICP-CI頁面的執(zhí)行結(jié)果頁面上。

4 持續(xù)集成失敗的原因分析與處理方法

進行持續(xù)集成工作時,難免會出現(xiàn)持續(xù)集成失敗的情況,對于整個軟件項目團隊而言,持續(xù)集成失敗需要引起極大地重視。一旦出現(xiàn)持續(xù)集成失敗,持續(xù)集成工程師需要第一時間發(fā)現(xiàn)持續(xù)集成構(gòu)建工程已經(jīng)失敗,根據(jù)已經(jīng)失敗的構(gòu)建工程失敗的位置、構(gòu)建工程頁面上提示失敗的錯誤信息以及構(gòu)建工程的詳細日志文件來確定本次持續(xù)集成失敗的原因,來確定解決問題的方案。持續(xù)集成失敗的原因通常有以下幾類。

4.1 持續(xù)集成構(gòu)建環(huán)境存在問題

由于構(gòu)建環(huán)境存在問題導致構(gòu)建失敗,通常表現(xiàn)為:主控服務器與代理服務器之間失去聯(lián)系、代理服務器斷開連接、需要歸檔到固定路徑下的結(jié)果文件歸檔失敗以及磁盤或根分區(qū)的空間過滿導致構(gòu)建失敗。對于這類問題,大部分可以在持續(xù)集成構(gòu)建開始之前通過對構(gòu)建環(huán)境的檢查和構(gòu)建環(huán)境的日常維護來解決。對于避免構(gòu)建環(huán)境原因?qū)е碌某掷m(xù)集成構(gòu)建失敗需要做到以下幾點:

1)在啟動持續(xù)集成構(gòu)建之前,檢查所有構(gòu)建環(huán)境是否能正常登陸;

2)檢查構(gòu)建環(huán)境中所有的ICP-CI相關的進程是否能正常啟動;

3)每周重啟一次所有的構(gòu)建環(huán)境,保持構(gòu)建環(huán)境性能穩(wěn)定;

4)每三天清理一次構(gòu)建環(huán)境上的日志文件以及各種中間文件存放的文件夾,確保所有構(gòu)建環(huán)境內(nèi)存的大于某個最小內(nèi)存下限值。

4.2 持續(xù)集成腳本存在問題

持續(xù)集成腳本是完成持續(xù)集成構(gòu)建的基礎;將軟件產(chǎn)品從單獨的某個進程文件編譯或者單個模塊的靜態(tài)檢查過程串聯(lián)起來,形成產(chǎn)品所有模塊源代碼的靜態(tài)檢查、編譯、出包以及自動化測試過程為一體的源代碼問題檢測和產(chǎn)品版本包驗證機制。持續(xù)集成腳本在這個機制中是串聯(lián)各個環(huán)節(jié)的紐帶。

1)通常持續(xù)集成腳本問題導致的失敗比較多的情況,出現(xiàn)在構(gòu)建環(huán)境剛剛搭建完成的工程調(diào)試階段。常見的表現(xiàn)形式為各種中間文件拷貝失敗等。為了避免這些失敗需要仔細分析構(gòu)建日志中的各種問題現(xiàn)象找到問題發(fā)生的原因并對構(gòu)建腳本進行相應的修改來解決。

2)在軟件產(chǎn)品開發(fā)過程中,不斷會有因為產(chǎn)品在安全方面或者客戶需求方面的變化導致的軟件產(chǎn)品版本包內(nèi)文件在出包過程中參于出包的文件發(fā)生變化,這需要產(chǎn)品的系統(tǒng)工程師和軟件開發(fā)工程師及時知會持續(xù)集成工程師完成出包腳本的修改,以確保軟件產(chǎn)品的版本包能符合安全方面或者客戶需求。

4.3 軟件源代碼問題

軟件源代碼問題導致持續(xù)集成失敗是持續(xù)集成失敗中出現(xiàn)頻率最高的情況。軟件產(chǎn)品版本從原型系統(tǒng)階段到轉(zhuǎn)維護的在研開發(fā)階段中解決了上千次的源代碼問題導致的構(gòu)建失敗。這些問題主要包括編譯錯誤、*.sql文件執(zhí)行失敗、Pclint靜態(tài)檢查錯誤和告警;編譯完成的版本包加載到自動化測試環(huán)境上之后,由于源代碼缺陷導致的模塊進程文件故障。

為了保證每次持續(xù)集成都使用最新的代碼,在持續(xù)集成之先需要更新代碼。開發(fā)工程師將沒有進行充分編譯、靜態(tài)檢查以及功能驗證的代碼直接合入SVN配置庫,就會導致在持續(xù)集成過程中出現(xiàn)編譯失敗、靜態(tài)檢查失敗以及自動化測試用例失敗等一系列構(gòu)建失敗。這類失敗的原因是源代碼開發(fā)完成之后驗證不充分就合入了SVN配置庫。開發(fā)工程師完成源代碼編碼之后,需要完成編譯驗證、靜態(tài)檢查,單元測試、代碼評審,確認合入配置庫的源代碼沒有問題后,才能將源代碼合入SVN配置庫,這樣就可以最大限度的降低源代碼問題導致持續(xù)集成失敗。

5 典型案例

某公司的有一個軟、硬件結(jié)合的中型軟件開發(fā)項目,總的代碼量超過兩百萬行。采用的SVN版本是1.6.16,客戶端安裝SVN命令行工具和SVN圖形客戶端工具Tortoise;數(shù)據(jù)庫為PostgreSQL數(shù)據(jù)庫;持續(xù)集成使用ICP-CI工具。1臺主控服務器和7臺代理服務器參與持續(xù)集成。主控服務器操作系統(tǒng)為WINDOWS 2003 Server,部署工具為ICP-CI-Windows-Master。5臺代理服務器操作系統(tǒng)為Suse Linux 10 x86-64,部署工具ICP-CI-Linux-Agent。產(chǎn)品的編譯和出包環(huán)境為Suse Linux 10 x86-64,采用Linux環(huán)境下的shell腳本和ANT腳本編程完成軟件持續(xù)集成中的進程編譯以及版本出包任務。剩余的2臺代理服務器安裝Windows 2003操作系統(tǒng),部署工具ICP-CI-Windows-Agent,使用批處理腳本和ANT腳本編程完成持續(xù)集成過程中的靜態(tài)檢查和出包準備任務。工作實踐表明持續(xù)集成有助于及早發(fā)現(xiàn)并解決軟件源代碼的問題和缺陷,便于產(chǎn)品主管了解工作進度和解決存在的問題。

6 結(jié)束語

長期的工作實踐表明在軟件的開發(fā)過程中采用基于SVN的持續(xù)集成,可以提高軟件的質(zhì)量和軟件開發(fā)效率,降低軟件的的成本。利用持續(xù)集成完成自動化構(gòu)建,可以快速向開發(fā)工程師反饋軟件源代碼的缺陷,使開發(fā)工程師能夠很快修復源代碼的缺陷,大大減少了開發(fā)中埋藏代碼缺陷,有效避免大量的源代碼缺陷在軟件開發(fā)的某個階段集中爆發(fā),同時也給項目的管理提供了很好的保證。

[1] 羅時飛.敏捷持續(xù)集成 : CruiseControl版:高效硏發(fā)之道[M].北京:電子工業(yè)出版社,2008.

[2] Paul M.Duvall,Steve Matyas,Andrew Glover.持續(xù)集成軟件質(zhì)量改進和風險降低之道[M].北京:電子工業(yè)出版社,2012.

[3] 董 越.軟件集成策略—如何有效率地提升質(zhì)量[M].北京:電子工業(yè)出版社,2013.

[4] 周 念. 基于SVN的軟件配置管理的應用研究[D].武漢:武漢理工大學, 2013.

[5] 相玉娟.基于變更管理的持續(xù)集成研究與應用[D].安徽:合肥工業(yè)大學,2009.

[6] Ben Collins—Sussman,Brian W.Fitzpatrick,C.Michael Pilato.Version Control with Subversion For Subversion 1.5[M].Karl Fogel,2005:1-142.

[7] Ste fan Kung,Lubbe Onken,Simon Large.Tortoise SVN Versionl 1.5.2[M].Karl Fogel,2005:102-132.

[8] David Bellagio,Tom Milligan.Software Configuration Management Strategies and IBM Rational ClearCase:A Practical Introduction.2ndEdition[M].IBM Press.2005.

[9] 徐仕成,楊邦榮. 基于C ruiseControl的持續(xù)集成實現(xiàn)方案[J]. 計算機與數(shù)字工程,2007,35(4):169-171.

[10] 李坤寧.單元測試和持續(xù)集成在企業(yè)級軟件開發(fā)中的設計與實現(xiàn)[D].成都:電子科技大學,2011.

[11] 陳婧欣.基于Hudson的持續(xù)集成方案的研究與實現(xiàn)[D].長春:東北師范大學,2011.

[12] 李 進.某公司軟件持續(xù)集成改進的分析設計及實施[D].北京:北京郵電大學,2012.

Continuous Integration of Application Software Based on SVN

Jiang Wen,Liu Likang

(School of Telecommunication Engineering, Xidian University, Xi’an 710071,China)

With the development of the software development technology, software configuration management and continuous integration has become an important part in the process of software development. In order to correctly apply the new technology in the process of software development, needs to research work in this field, combines with working practice, uses SVN as configuration management tool, analyzes the characteristics of continuous integration tool ICP-CI, deployment mode and operation mechanism. Construction process of ICP-CI continuous integration building project , building process including the SCM tool SVN client installation, based on the static code SVN update, check and compilation, packaging, release package for automated tests is described in detail. In every stage of building project, possible errors causes the failure of building, through the analysis of the building failure reason, building failures can be divided into 3 groups, and gives the corresponding solutions. Finally introduces a typical case. Practice shows that the continuous integration based on SVN in the process of software development, reduces the cost of software development.

continuous Integration;ICP-CI; ICP-CI server;build;SVN

2015-08-23;

2015-10-30。

國防預研基金項目(A1120110007)。

姜 文(1986-),女,陜西西安人,工程師,碩士研究生,CCF會員(E200032324M),主要從事圖像處理與分析,文字信息分析處理,數(shù)據(jù)庫應用和軟件工程方向的研究。

劉立康(1962-),男,陜西西安人,副教授,主要從事數(shù)字通信、圖像傳輸與處理、圖像分析與圖像識別等方向的研究。

1671-4598(2016)03-0109-05

10.16526/j.cnki.11-4762/tp.2016.03.030

TP311.5

A

猜你喜歡
代理服務器源代碼腳本
人工智能下復雜軟件源代碼缺陷精準校正
計算機仿真(2023年8期)2023-09-20 11:23:42
酒駕
基于TXL的源代碼插樁技術研究
安奇奇與小cool 龍(第二回)
地鐵信號系統(tǒng)中代理服務器的設計與實現(xiàn)
數(shù)據(jù)庫系統(tǒng)shell腳本應用
電子測試(2018年14期)2018-09-26 06:04:24
軟件源代碼非公知性司法鑒定方法探析
IP地址隱藏器
快樂假期
中學生(2017年19期)2017-09-03 10:39:07
揭秘龍湖產(chǎn)品“源代碼”
嵩明县| 青川县| 凤庆县| 凤凰县| 启东市| 碌曲县| 云浮市| 商都县| 千阳县| 兴隆县| 政和县| 嘉鱼县| 贞丰县| 辽源市| 金山区| 江阴市| 蛟河市| 读书| 镇宁| 鹤庆县| 陆河县| 镇赉县| 汪清县| 合阳县| 汨罗市| 新郑市| 阳高县| 繁峙县| 通州区| 探索| 通化市| 西充县| 山西省| 安远县| 太白县| 鸡东县| 隆子县| 天气| 呼图壁县| 静海县| 鄂伦春自治旗|