專利名稱:一種日構(gòu)建方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件開發(fā)領(lǐng)域,特別是一種日構(gòu)建方法、裝置及系統(tǒng)。
技術(shù)背景在軟件開發(fā)的過程中,若想保持每日的軟件開發(fā)工作高效且正確,所采 用的有效方法之一即是采用日構(gòu)建方案。所謂日構(gòu)建在本質(zhì)上是一種管理實 踐,即通過持續(xù)集成、快速反饋來保證軟件開發(fā)工作所開發(fā)的軟件產(chǎn)品按照 漸進的、可預(yù)期的目標(biāo)前進。以日構(gòu)建為基礎(chǔ)管理軟件開發(fā)工作,有利于保 證軟件開發(fā)項目成功和提高軟件產(chǎn)品質(zhì)量。所謂日構(gòu)建,就是每天把所有的工作產(chǎn)品集成起來,這里所說的工作產(chǎn) 品即是開發(fā)人員編寫的代碼,并盡可能讓這些代碼處于可測試狀態(tài)。由于軟 件開發(fā)工作,尤其是大型軟件的開發(fā)工作需要眾多的開發(fā)人員在相當(dāng)長的時 間內(nèi)才能完成,因此在軟件開發(fā)的工作中極有可能遇到開發(fā)人員理解軟件設(shè) 計錯誤、開發(fā)效率低下,最終軟件產(chǎn)品質(zhì)量不合格等問題,應(yīng)用日構(gòu)建方法, 可以對每個開發(fā)人員的日常開發(fā)行為和目標(biāo)做出規(guī)范,這些規(guī)范減小了設(shè)計 者與開發(fā)者之間的溝通代價,協(xié)調(diào)團隊成員間的工作,并且能夠?qū)浖椖?各個方面和層次做出真實而及時的反饋。在軟件的開發(fā)過程中,軟件的質(zhì)量保證是軟件開發(fā)領(lǐng)域的難題之一,而 使用日構(gòu)建方案,從每個開發(fā)人員的工作產(chǎn)品出發(fā),在軟件開發(fā)的初始階段 即進行產(chǎn)品質(zhì)量的控制。日構(gòu)建的反饋頻度為每日一次,這種頻度的反饋比 較容易發(fā)現(xiàn)并解決在軟件開發(fā)過程中出現(xiàn)的問題,進而提高整個軟件的質(zhì)量?,F(xiàn)有的日構(gòu)建方案具體的實現(xiàn)過程如下每天在一個固定的時間,比如 凌晨零時開始,構(gòu)建服務(wù)器自動啟動構(gòu)建任務(wù),此任務(wù)觸發(fā)一個批處理文件, 完成日構(gòu)建目標(biāo)。所述批處理文件中定義的批處理任務(wù)即為構(gòu)建任務(wù)。日構(gòu) 建服務(wù)器根據(jù)所述構(gòu)建任務(wù)從代碼服務(wù)器獲取軟件產(chǎn)品的程序代碼,對所述 代碼進行編譯,并將編譯打包后的代碼發(fā)送至測試服務(wù)器,對所述代碼的測
試。若檢測出問題,則發(fā)送郵件通知開發(fā)人員與項目負(fù)責(zé)人。但是,現(xiàn)有的日構(gòu)建方案每天只是進行一次構(gòu)建,在每天的軟件產(chǎn)品的 代碼開發(fā)工作中,隨時都有可能遇到問題,而卻不能通過構(gòu)建服務(wù)器編譯剛 剛完成的程序代碼,及時發(fā)現(xiàn)問題并進行相應(yīng)的修改。因此若某些關(guān)鍵項目 的代碼出現(xiàn)錯誤,則會直接影響其它項目的代碼的正常編寫,在這種情況下 需要軟件開發(fā)人員頻繁手工處理出錯的項目,致使工作效率低下。 發(fā)明內(nèi)容本發(fā)明實施例提供一種日構(gòu)建方法、裝置及系統(tǒng),以解決現(xiàn)有日構(gòu)建方 案每天只能進行一次構(gòu)建,由此導(dǎo)致的只能在固定的時間構(gòu)建程序代碼,因 此發(fā)現(xiàn)代碼錯誤不及時,需要開發(fā)人員手工對程序代碼進行編譯檢測,進而 導(dǎo)致的軟件開發(fā)效率低的問題。為解決上述問題,本發(fā)明實施例提供一種日構(gòu)建方法,包括 接收構(gòu)建請求;根據(jù)所述構(gòu)建請求獲取程序代碼并進行編譯; 發(fā)送編譯后的程序代碼至測試服務(wù)器,實現(xiàn)構(gòu)建任務(wù)。 優(yōu)選地,執(zhí)行接收構(gòu)建請求之前,所述方法還包括 客戶端從數(shù)據(jù)庫獲取程序項目信息; 根據(jù)所述程序項目信息生成構(gòu)建請求。 優(yōu)選地,接收構(gòu)建請求后,所述方法還包括構(gòu)建服務(wù)器解析所述構(gòu)建請求,得到程序項目信息,并根據(jù)所述程序項 目信息執(zhí)行獲取程序代碼步驟。優(yōu)選地,執(zhí)行編譯所述程序代碼后,所述方法還包括 所述構(gòu)建服務(wù)器將編譯后的程序代碼進行打包,執(zhí)行所述發(fā)送步驟。 優(yōu)選地,執(zhí)行發(fā)送編譯后的程序代碼至測試服務(wù)器后,所述方法還包括: 構(gòu)建服務(wù)器將編譯程序代碼的結(jié)果發(fā)送至數(shù)據(jù)庫存儲。 優(yōu)選地,所述方法還包括測試服務(wù)器訪問所述構(gòu)建服務(wù)器,若所述構(gòu)建服務(wù)器存在編譯后的程序
代碼,則請求接收所述編譯后的程序代碼。相應(yīng)地,本發(fā)明實施例還提供一種日構(gòu)建裝置,包括 接收單元,用于接收構(gòu)建請求; 獲取單元,用于根據(jù)所述構(gòu)建請求獲取程序代碼; 編譯單元,用于編譯所述獲取的程序代碼;發(fā)送單元,用于將編譯后的所述程序代碼發(fā)送至測試服務(wù)器,實現(xiàn)構(gòu)建 任務(wù)。優(yōu)選地,所述裝置還包括解析單元,用于解析所述構(gòu)建請求,得到程序項目信息。 優(yōu)選地,所述裝置還包括打包單元,用于將編譯后的程序代碼進行打包,通知發(fā)送單元進行發(fā)送。 相應(yīng)地,本發(fā)明實施例還提供一種日構(gòu)建系統(tǒng),包括構(gòu)建服務(wù)器、代 碼服務(wù)器、測試服務(wù)器、數(shù)據(jù)庫與客戶端,其中,所述構(gòu)建服務(wù)器包括 接收單元,用于接收構(gòu)建請求; 獲取單元,用于根據(jù)所述構(gòu)建請求獲取程序代碼; 編譯單元,用于編譯所述獲取的程序代碼;發(fā)送單元,用于將編譯后的所述程序代碼發(fā)送至測試服務(wù)器,實現(xiàn)構(gòu)建 任務(wù)。優(yōu)選地,所述構(gòu)建服務(wù)器還包括解析單元,用于解析所述構(gòu)建請求,得到程序項目信息。 優(yōu)選地,所述構(gòu)建服務(wù)器還包括打包單元,用于將編譯后的程序代碼進行打包,通知發(fā)送單元進行發(fā)送。 與現(xiàn)有技術(shù)相比,本發(fā)明實施例所提供的日構(gòu)建方法、裝置及系統(tǒng)應(yīng)用 客戶端-服務(wù)器模式,根據(jù)代碼編寫過程中的具體需要,通過客戶端向構(gòu)建 服務(wù)器發(fā)送構(gòu)建請求,從而能夠?qū)崟r對軟件產(chǎn)品的程序代碼進行構(gòu)建,及時 檢測所述程序代碼的錯誤,減少了人為測試處理過程,提高軟件開發(fā)效率。
圖1是本發(fā)明實施例的方法流程圖;圖2是本發(fā)明實施例所應(yīng)用方法的系統(tǒng)結(jié)構(gòu)圖;圖3是本發(fā)明實施例客戶端工作流程圖;圖4是本發(fā)明實施例構(gòu)建服務(wù)器工作流程圖;圖5是本發(fā)明實施例構(gòu)建服務(wù)器線程工作流程圖;圖6是本發(fā)明實施例裝置結(jié)構(gòu)圖;圖7是本發(fā)明實施例系統(tǒng)結(jié)構(gòu)圖。
具體實施方式
下面結(jié)合附圖及實施例對本發(fā)明作詳細(xì)的說明。本發(fā)明實施例的系統(tǒng)基 于Eclipse構(gòu)建,Eclipse是一個開發(fā)源代碼的、基于Java的可擴展開發(fā)平臺, 它本身只是一個框架和一組服務(wù),用于通過插件構(gòu)成開發(fā)環(huán)境。Eclipse平臺 為工具提供者(ToolsProvider)提供一套使用機制和一組需要遵循的規(guī)則,從 而使得開發(fā)出的工具之間實現(xiàn)無縫的集成。這些機制通過定義API接口、類 和方法提供給用戶使用。更確切地說,Eclipse中的每樣?xùn)|西都是插件。在曰構(gòu)建系統(tǒng)中,利用Ant來自動完成構(gòu)建工作。Ant是Apache Jakarta 的一個項目,它使用Java語言編寫,根據(jù)配置文件并基于一個腳本(.xml) 文件執(zhí)行。其配置文件由目標(biāo)樹構(gòu)成,每個目標(biāo)含了要執(zhí)行的任務(wù),所述任 務(wù)即是可執(zhí)行的代碼。Ant通過系統(tǒng)定時功能,可以很方便地自動實現(xiàn)構(gòu)建工 作。請參閱圖l所示,為本發(fā)明實施例的方法流程圖,具體包括步驟 步驟S101:接收構(gòu)建請求;步驟S102:根據(jù)所述構(gòu)建請求獲取程序代碼并進行編譯; 步驟S103:發(fā)送編譯后的程序代碼至測試服務(wù)器,實現(xiàn)對所述程序代碼 的構(gòu)建。根據(jù)本發(fā)明實施例的步驟,即可實現(xiàn)通過客戶端發(fā)送日構(gòu)建請求,從而 根據(jù)需要對程序代碼進行編譯和檢測。在本發(fā)明的優(yōu)選實施例中,系統(tǒng)的連接結(jié)構(gòu)如圖2所示,客戶端201根
據(jù)具體要構(gòu)建的程序代碼,從數(shù)據(jù)庫204中獲取到程序項目信息,在所述程 序項目信息中,包括程序的建立時間、上傳至代碼服務(wù)器時間、修改記錄及 程序代碼在代碼服務(wù)器205上的位置等等。獲取到上述信息后,客戶端201 將上述信息進行封裝,生成構(gòu)建請求,并發(fā)送至構(gòu)建服務(wù)器202。所述客戶端 的具體工作流程圖請參閱圖3所示,具體包括步驟步驟S301:啟動Eclipse工具和日構(gòu)建客戶端工具;步驟S302:檢測在數(shù)據(jù)庫中是否存在所述日構(gòu)建客戶端工具的新版本, 若存在,執(zhí)行步驟S303,若不存在,執(zhí)行步驟S304;步驟S303:從數(shù)據(jù)庫下載升級日構(gòu)建客戶端工具新版本;步驟S304:根據(jù)具體需要,向數(shù)據(jù)庫或構(gòu)建服務(wù)器發(fā)送命令消息,完成 相應(yīng)的工作任務(wù),并將完成記錄寫入數(shù)據(jù)庫;步驟S305:查詢數(shù)據(jù)庫,顯示已被提交的工作任務(wù)列表。其中,所述客戶端201能夠?qū)崿F(xiàn)多個功能,因此定義每一個功能均使用 不同的消息格式進行發(fā)送,每一條消息即包括一個功能。因此在步驟S304中, 向數(shù)據(jù)庫或構(gòu)建服務(wù)器發(fā)送的消息根據(jù)不同的功能均為不同的格式。這些消 息包括向數(shù)據(jù)庫寫入記錄數(shù)據(jù)的命令,或向構(gòu)建服務(wù)器發(fā)送的構(gòu)建請求等等。 所述客戶端201每一次可以發(fā)送多條消息,因此,所述客戶端201在同一時 刻可以處理多個任務(wù)。所述構(gòu)建服務(wù)器202接收到所述構(gòu)建請求后,對所述構(gòu)建請求進行解析, 通過解析過程,得到程序的相關(guān)項目信息,如程序代碼位置,并根據(jù)所述程 序代碼在代碼服務(wù)器205的位置,從代碼服務(wù)器205獲取到所述程序代碼, 從而實現(xiàn)代碼下拉過程,即將程序的代碼從代碼服務(wù)器205下拉到構(gòu)建服務(wù) 器202上。所述構(gòu)建服務(wù)器202的工作流程請參閱圖4所示,包括步驟 步驟S401:初始化工作環(huán)境,讀取配置文件;步驟S402:讀取在本機存儲的歷史記錄,判斷是否存在未處理完成的任 務(wù),若存在,執(zhí)行步驟S403,若不存在,執(zhí)行步驟S404; 步驟S403:將所述歷史記錄進行歸類,根據(jù)不同的類型,發(fā)送相應(yīng)的命 令消息至不同隊列,繼續(xù)完成相應(yīng)未完成的任務(wù); 步驟S404:開啟監(jiān)聽端口,接收命令消息;步驟S405:根據(jù)不同的命令消息類型將任務(wù)發(fā)送至不同的隊列中,完成 相應(yīng)的^f壬務(wù)。所述構(gòu)建服務(wù)器202最開始啟動時,首先要讀取配置文件,根據(jù)所述配 置文件中所記載的環(huán)境信息進行相應(yīng)的配置,所述環(huán)境信息包括數(shù)據(jù)庫連接 信息、環(huán)境目錄結(jié)構(gòu)、服務(wù)監(jiān)聽端口,讀耳又到上述環(huán)境信息后,所述構(gòu)建服 務(wù)器202創(chuàng)建三個信號隊列,每一個隊列均對應(yīng)并啟動一個獨立的任務(wù)線程, 如服務(wù)監(jiān)聽線程啟動后,開始監(jiān)聽隊列信號,若存在新的隊列信號,則根據(jù) 其信息內(nèi)容進4亍相應(yīng)的處理。其中,所述線程的工作流程請參閱圖5所示,具體包括步驟步驟S501:判斷是否存在信號隊列,若是,執(zhí)行步驟S503,若否,執(zhí)行 步驟S502;步驟S502:監(jiān)聽等待新的信號隊列;步驟S503:在信號隊列中讀取任務(wù),并在數(shù)據(jù)庫中讀取相應(yīng)記錄; 步驟S504:根據(jù)在數(shù)據(jù)庫中讀取的記錄在數(shù)據(jù)庫中獲取指定的配置文件, 處理相應(yīng)任務(wù);步驟S505:任務(wù)處理完成后,將處理結(jié)果發(fā)送至數(shù)據(jù)庫及項目相關(guān)人員。其中,在數(shù)據(jù)庫中讀取的任務(wù)記錄基本項目包括任務(wù)編號、項目名稱、 項目編號、提交人名稱、項目負(fù)責(zé)人郵件地址、提交人郵件地址、日志文件 名稱等。所述任務(wù)編號對于每一個任務(wù)來說均是在數(shù)據(jù)庫中惟一的編號,有 效標(biāo)識出不同的任務(wù)。不同的任務(wù)線程,其基本的工作流程一致,只是在具體不同功能的處理 上面,存在差別,但均是以上述工作流程進行相應(yīng)處理。其中,構(gòu)建線程的處理過程主要為在數(shù)據(jù)庫中獲取任務(wù)相應(yīng)任務(wù)記錄, 根據(jù)所述記錄中的項目名稱獲得默認(rèn)環(huán)境下ANT的.xml文件,然后直接調(diào)用
ANT執(zhí)行這些.xml文件,所述的.xml文件均是預(yù)先寫好的腳本文件。輸出線程的處理過程主要為將輸出文件從構(gòu)建環(huán)境拷貝到另 一輸出指 定目錄中,實現(xiàn)將所述輸出文件的輸出,其目錄結(jié)構(gòu)間的對應(yīng)關(guān)系由配置文 件設(shè)置相應(yīng)設(shè)置。補丁線程的處理過程主要為根據(jù)指定的項目列表,將所述項目列表中 的指定文件按照特定的目錄結(jié)構(gòu)拷貝到一個指定的位置,然后壓縮成一個壓 縮包。所述構(gòu)建服務(wù)器202獲取到所述程序代碼后,對所述程序代碼進行編譯, 并發(fā)送開發(fā)人信息、編譯結(jié)果等數(shù)據(jù)至數(shù)據(jù)庫204。編-澤完成后,所述構(gòu)建服 務(wù)器將所述編譯完成的代碼打包。所述構(gòu)建服務(wù)器202設(shè)置有相應(yīng)的代碼標(biāo)識位,若存在編譯后的程序代 碼,則通過所述代碼標(biāo)識位表示。所述測試服務(wù)器203以預(yù)先i殳定的頻率庫侖 詢所述構(gòu)建服務(wù)器202的代碼標(biāo)識位,若所述代碼標(biāo)識位表示所述構(gòu)建服務(wù) 器202存在編譯后的程序代碼,則向所述構(gòu)建服務(wù)器發(fā)送代碼接收請求。所 述測試服務(wù)器203接收到所述代碼包后,對所述代碼包進行解包工作,獲得 所述編譯后的代碼,進行相應(yīng)的測試。若通過測試,4企測出所述代碼存在錯 誤,則測試服務(wù)器203發(fā)送測試結(jié)果至數(shù)據(jù)庫204存儲,并發(fā)送通知消息至 所述代碼的開發(fā)人及項目負(fù)責(zé)人,使他們能夠及時獲得代碼的狀況,進行相 應(yīng)的處理。應(yīng)用本優(yōu)選實施例所提供的方法,通過客戶端向構(gòu)建服務(wù)器發(fā)送構(gòu)建請 求,能夠?qū)崿F(xiàn)實時對軟件產(chǎn)品的程序代碼進行構(gòu)建,能夠及時檢測出所述程 序代碼的錯誤,從而提高軟件開發(fā)效率。相應(yīng)地,本發(fā)明實施例還提供一種日構(gòu)建裝置,其優(yōu)選實施例裝置請參 閱圖6所示,包括接收單元601,于用接收構(gòu)建請求;獲取單元602,用于根 據(jù)所述構(gòu)建請求從代碼服務(wù)器獲取程序代碼;編譯單元603,用于編譯所述獲 取的程序代碼;發(fā)送單元604,用于將編譯后的所述程序代碼發(fā)送至測試服務(wù) 器,實現(xiàn)構(gòu)建任務(wù)。 另外,所述裝置還包括解析單元605,用于解析所述構(gòu)建請求,得到程序項目信息;打包單元606,用于將編譯后的程序代碼進行打包,通知發(fā)送單元 進行發(fā)送。應(yīng)用本發(fā)明實施例提供的優(yōu)選裝置,客戶端向所述日構(gòu)建裝置發(fā)送構(gòu)建 請求,所述接收單元601接收到所述構(gòu)建請求后,所述解析單元605進行解 析,獲取到目標(biāo)程序的建立時間、修改記錄以及程序代碼在代碼服務(wù)器上的 位置等。所述日構(gòu)建裝置根據(jù)所述程序的相關(guān)信息,通過獲取單元602從代 碼服務(wù)器獲取到所述程序的代碼,并通過所述編譯單元603編譯所述代碼。代碼編譯完成之后,所述日構(gòu)建裝置發(fā)送提交人信息、編譯結(jié)果等數(shù)據(jù) 至數(shù)據(jù)庫,并通過打包單元606將所述代碼封裝,若接收到測試服務(wù)器的代 碼接收請求,則利用發(fā)送單元604將所述代碼包發(fā)送至測試服務(wù)器。所述測試服務(wù)器接收到所述代碼包后,對所述代碼包進行解包工作,獲 得所述編譯后的代碼,進行相應(yīng)的測試。若經(jīng)過測試,;險測出所述代碼存在 錯誤,則測試服務(wù)器將測試結(jié)果發(fā)送至數(shù)據(jù)庫存儲,并發(fā)送通知消息至所述 代碼的開發(fā)人員及其項目負(fù)責(zé)人,使他們能夠及時獲取到代碼的狀況,進行 相應(yīng)的處理。應(yīng)用本優(yōu)選實施例所提供的裝置,可以將所述裝置設(shè)置于日構(gòu)建系統(tǒng)的 構(gòu)建服務(wù)器中,能夠接收客戶端發(fā)送的構(gòu)建請求,根據(jù)所述構(gòu)建請求實時對 軟件產(chǎn)品的程序代碼進行構(gòu)建,及時檢測出所述程序代碼的錯誤,從而提高 軟件開發(fā)效率。相應(yīng)地,本發(fā)明實施例還提供一種日構(gòu)建系統(tǒng),其結(jié)構(gòu)請參閱圖7所示, 包括構(gòu)建服務(wù)器701,用于完成程序代碼的構(gòu)建任務(wù);代碼服務(wù)器702,用于 存儲輸軟件產(chǎn)品的程序代碼;測試服務(wù)器703,用于接收構(gòu)建服務(wù)器701編譯 后的程序代碼,并進行相應(yīng)的測試;數(shù)據(jù)庫704,用于存儲軟件產(chǎn)品信息、構(gòu) 建的結(jié)果與測試結(jié)果;客戶端705,用于讀取軟件產(chǎn)品的信息,根據(jù)所述信息 發(fā)起構(gòu)建請求。其中,所述構(gòu)建服務(wù)器701包括如上所述的日構(gòu)建裝置,其實現(xiàn)程序代 碼的構(gòu)建過程如下客戶端705根據(jù)具體要構(gòu)建的程序代碼,從數(shù)據(jù)庫704中獲取到程序項 目信息,在所述程序項目信息中,包括程序的建立時間、上傳至代碼服務(wù)器 時間、修改記錄及程序代碼在代碼服務(wù)器702上的位置等等。獲取到上述信 息后,所述客戶端705將上述信息進行封裝,生成構(gòu)建請求,并發(fā)送至所述 構(gòu)建服務(wù)器701。所述構(gòu)建服務(wù)器701接收到所述構(gòu)建請求后,對所述構(gòu)建請求進行解析, 通過所述解析過程,得到程序的相關(guān)項目信息,如程序代碼位置,并根據(jù)所 述程序代碼在代碼服務(wù)器702的位置,從代碼服務(wù)器702獲取到所述程序代 碼,^v而實現(xiàn)代碼下拉過程,即將程序的代碼^v代碼服務(wù)器702下拉到所述 構(gòu)建服務(wù)器701。所述構(gòu)建服務(wù)器701獲取到所述程序代碼后,對所述程序代碼進行編譯, 并發(fā)送開發(fā)人信息、編譯結(jié)果等數(shù)據(jù)至數(shù)據(jù)庫704。編譯完成后,所述構(gòu)建服 務(wù)器701將所述編譯完成的代碼打包。所述構(gòu)建服務(wù)器701設(shè)置有相應(yīng)的代碼標(biāo)識位,若存在編譯后的程序代 碼,則通過所述代碼標(biāo)識位表示。所述測試服務(wù)器703以預(yù)先設(shè)定的頻率輪 詢所述構(gòu)建服務(wù)器701的代碼標(biāo)識位,若所述代碼標(biāo)識位表示所述構(gòu)建服務(wù) 器701存在編譯后的程序代碼,則向所述構(gòu)建服務(wù)器發(fā)送代碼接收請求。所 述測試服務(wù)器703接收到所述代碼包,進行解包,獲得所述編譯后的代碼, 進行相應(yīng)的測試。若通過測試,檢測出所述代碼存在錯誤,則測試服務(wù)器703 發(fā)送測試結(jié)果至數(shù)據(jù)庫704,并發(fā)送通知消息至所述代碼的開發(fā)人及項目負(fù)責(zé) 人,使他們能夠及時獲得代碼狀況,進行相應(yīng)處理。應(yīng)用本優(yōu)選實施例所提供的系統(tǒng),可以實現(xiàn)由客戶端根據(jù)需要發(fā)起的構(gòu) 建請求,構(gòu)建服務(wù)器根據(jù)所述構(gòu)建請求完成構(gòu)建任務(wù),從而能夠及時檢測出 程序代的錯誤,減少人工檢測過程,提高軟件開發(fā)效率。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普 通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤
飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
權(quán)利要求
1、一種日構(gòu)建方法,其特征在于,所述方法包括接收構(gòu)建請求;根據(jù)所述構(gòu)建請求獲取程序代碼并進行編譯;發(fā)送編譯后的程序代碼至測試服務(wù)器,實現(xiàn)構(gòu)建任務(wù)。
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,執(zhí)行接收構(gòu)建請求之前, 所述方法還包括客戶端從數(shù)據(jù)庫獲取程序項目信息; 根據(jù)所述程序項目信息生成構(gòu)建請求。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,接收構(gòu)建請求后,所述方 法還包括構(gòu)建服務(wù)器解析所述構(gòu)建請求,得到所述程序項目信息,并根據(jù)所述程 序項目信息執(zhí)行獲取程序代碼步驟。
4、 根據(jù)權(quán)利要求1所述的方法,其特征在于,執(zhí)行編譯所述程序代碼后, 所述方法還包括所述構(gòu)建服務(wù)器將編譯后的程序代碼進行打包,4丸行所述發(fā)送步驟。
5、 根據(jù)權(quán)利要求1所述的方法,其特征在于,執(zhí)行發(fā)送編譯后的程序代 碼至測試服務(wù)器后,所述方法還包括構(gòu)建服務(wù)器將編譯程序代碼的結(jié)果發(fā)送至數(shù)據(jù)庫。
6、 才艮據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括 測試服務(wù)器訪問所述構(gòu)建服務(wù)器,若所述構(gòu)建服務(wù)器存在編譯后的程序代碼,則請求接收所述編譯后的程序代碼。
7、 一種日構(gòu)建裝置,其特征在于,所述裝置包括 接收單元,用于接收構(gòu)建請求;獲取單元,用于4艮據(jù)所述構(gòu)建請求獲取程序代碼; 編譯單元,用于編譯所述獲取的程序代碼;發(fā)送單元,用于將編譯后的所述程序代碼發(fā)送至測試服務(wù)器,實現(xiàn)構(gòu)建任務(wù)。
8、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括 解析單元,用于解析所述構(gòu)建請求,得到程序項目信息。
9、 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括 打包單元,用于將編譯后的程序代碼進行打包,通知發(fā)送單元進行發(fā)送。
10、 一種日構(gòu)建系統(tǒng),其特征在于,所述系統(tǒng)包括構(gòu)建服務(wù)器、代碼服 務(wù)器、測試服務(wù)器、數(shù)據(jù)庫與客戶端,其中,所述構(gòu)建服務(wù)器包括接收單元,用于接收構(gòu)建請求;獲取單元,用于根據(jù)所述構(gòu)建請求獲:f又程序代碼;編譯單元,用于編譯所述獲取的程序代碼;發(fā)送單元,用于將編譯后的所述程序代碼發(fā)送至測試服務(wù)器,實現(xiàn)構(gòu)建 任務(wù)。
11、 根據(jù)權(quán)利要求IO所述的系統(tǒng),其特征在于,所述構(gòu)建服務(wù)器還包括 解析單元,用于解析所述構(gòu)建請求,得到程序項目信息。
12、 根據(jù)權(quán)利要求IO所述的系統(tǒng),其特征在于,所述構(gòu)建服務(wù)器還包括 打包單元,用于將編譯后的程序代碼進行打包,通知發(fā)送單元進行發(fā)送。
全文摘要
本發(fā)明涉及軟件開發(fā)領(lǐng)域,公開了一種日構(gòu)建方法。所述方法包括接收構(gòu)建請求;根據(jù)所述構(gòu)建請求獲取程序代碼并進行編譯;發(fā)送編譯后的程序代碼至測試服務(wù)器,實現(xiàn)構(gòu)建任務(wù)。應(yīng)用本發(fā)明提供的方法,能夠根據(jù)軟件開發(fā)的具體需要實時對軟件產(chǎn)品的程序代碼進行構(gòu)建,及時檢測程序代碼的錯誤,減少人為測試處理過程,提高軟件開發(fā)效率。相應(yīng)地,本發(fā)明還提供了日構(gòu)建裝置及系統(tǒng)。
文檔編號G06F9/44GK101149682SQ20071016602
公開日2008年3月26日 申請日期2007年10月31日 優(yōu)先權(quán)日2007年10月31日
發(fā)明者劉繼平, 蘇召輝 申請人:金蝶軟件(中國)有限公司