欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

每日構(gòu)建方法和裝置的制作方法

文檔序號(hào):6580267閱讀:264來(lái)源:國(guó)知局
專利名稱:每日構(gòu)建方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及軟件技術(shù)領(lǐng)域,尤其涉及一種每日構(gòu)建方法和裝置。
背景技術(shù)
每曰構(gòu)建也稱為定時(shí)構(gòu)造或持續(xù)集成,包括編譯集成、代碼規(guī)范檢查和 單元測(cè)試等。
每曰構(gòu)建是一種控制版本質(zhì)量的重要手段,要實(shí)現(xiàn)盡快對(duì)版本代碼變動(dòng) 做出反應(yīng),每日構(gòu)建的效率至關(guān)重要。提高每日構(gòu)建的效率的一個(gè)重要途徑 是提高每日構(gòu)建的自動(dòng)化程度,包括代碼的收集,下載,編譯,檢查以及編 譯檢查結(jié)果的處理等,都應(yīng)該自動(dòng)高效的完成。
每曰構(gòu)建系統(tǒng)包括代碼服務(wù)器,構(gòu)建服務(wù)器,測(cè)試服務(wù)器,以及數(shù)據(jù)庫(kù)。 程序員將代碼的新版本放入代碼服務(wù)器,并向構(gòu)建服務(wù)器下發(fā)控制指令,指 示構(gòu)建服務(wù)器對(duì)新版本的代碼進(jìn)行編譯集成。
在上述使用每日構(gòu)建編譯集成代碼的過(guò)程中,存在如下問(wèn)題
如果構(gòu)建服務(wù)器當(dāng)前正在編譯集成代碼,此時(shí),該構(gòu)建服務(wù)器無(wú)法對(duì)其 他代碼進(jìn)行編譯集成,當(dāng)開發(fā)人員眾多,版本復(fù)雜,代碼量大,代碼變更頻 繁時(shí),構(gòu)建服務(wù)器無(wú)法滿足編譯大量代碼的編譯需求。

發(fā)明內(nèi)容
本發(fā)明提供了 一種每日構(gòu)建方法和裝置,解決了構(gòu)建服務(wù)器無(wú)法滿足編 譯大量代碼的編譯需求的問(wèn)題。
一種每日構(gòu)建方法,包^::
在預(yù)置的構(gòu)建時(shí)間,自動(dòng)下載版本代碼;在下載代碼完成后,對(duì)所述版本代碼進(jìn)行編-澤和^f企查,生成構(gòu)建日志文件。
進(jìn)一步的,所述在預(yù)置的構(gòu)建時(shí)間,自動(dòng)下載版本代碼的步驟之前,還
包括
;險(xiǎn)查代碼的完整性,如果所述代碼不完整,則結(jié)束每日構(gòu)建。
進(jìn)一步的,所述在下載代碼完成后,對(duì)所述版本代碼進(jìn)行編譯和檢查,
生成構(gòu)建日志文件的步驟之后,還包括
在所述構(gòu)建日志文件中查找關(guān)鍵字,分析抽取構(gòu)建信息。
進(jìn)一步的,所述構(gòu)建日志文件包括編譯日志和檢查日志,在所述構(gòu)建日 志文件中查找關(guān)鍵字,分析抽取構(gòu)建信息包括
根據(jù)告警關(guān)鍵字,從編譯日志中抽取編譯告警信息,根據(jù)該編譯告警信 息生成告警郵件,發(fā)送并備份所述告警郵件;和,
根據(jù)告警關(guān)鍵字,從檢查日志中抽取告警信息,根據(jù)該告警信息生成生 成告警郵件,發(fā)送并備份所述告警郵件。
進(jìn)一步的,所述在下栽代碼完成后,對(duì)所述版本代碼進(jìn)行編譯和檢查, 生成構(gòu)建日志文件的步驟之后,還包括
檢查代碼編譯是否成功;
如果代碼編譯成功,對(duì)該代碼進(jìn)行備份;或,
如果代碼編譯失敗,結(jié)束每日構(gòu)建。
進(jìn)一步的,所述如果代碼編譯成功,對(duì)該代碼進(jìn)行備份包括 生成版本備份目錄,記錄每日構(gòu)建的時(shí)間; 將所述代碼拷貝到所述版本備份目錄下打包備份。
一種每日構(gòu)建裝置,包括
代碼下載模塊,用于根據(jù)預(yù)置的編譯周期,自動(dòng)下載版本代碼; 編譯和檢查模塊,用于在下載代碼完成后,對(duì)所述代碼進(jìn)行編譯和檢查,
5生成構(gòu)建日志文件。
進(jìn)一步的,上述每日構(gòu)建裝置還包括
完整性檢查模塊,用于檢查代碼的完整性,如果所述代碼不完整,則結(jié) 束每日構(gòu)建。
進(jìn)一步的,上述每日構(gòu)建裝置還包括
曰志分析模塊,用于在所述構(gòu)建日志文件中查找關(guān)鍵字,分析抽取構(gòu)建
信息;
編譯結(jié)果檢查模塊,用于檢查代碼編譯是否成功,在代碼編譯成功時(shí)對(duì) 該代碼進(jìn)行備份,或在代碼編譯失敗時(shí)結(jié)束每日構(gòu)建。
進(jìn)一步的,該每日構(gòu)建裝置集成于構(gòu)建服務(wù)器或個(gè)人終端中。
本發(fā)明的實(shí)施例提供了 一種每日構(gòu)建方法和裝置,在預(yù)置的構(gòu)建時(shí)間, 自動(dòng)下載版本代碼,并對(duì)所述版本代碼進(jìn)行編譯和檢查,生成構(gòu)建日志文件, 實(shí)現(xiàn)了同時(shí)對(duì)多組代碼的集成編譯,提高了編譯效率,解決了構(gòu)建服務(wù)器無(wú) 法滿足編譯大量代碼的編譯需求的問(wèn)題。


圖1為本發(fā)明的實(shí)施例提供的一種每日構(gòu)建方法的流程圖2為本發(fā)明的實(shí)施例提供的一種每日構(gòu)建裝置的結(jié)構(gòu)示意圖3為本發(fā)明的又一實(shí)施例提供的一種每日構(gòu)建裝置的結(jié)構(gòu)示意圖4為本發(fā)明的又一實(shí)施例提供的一種每日構(gòu)建裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
當(dāng)開發(fā)人員眾多(比如說(shuō)一個(gè)軟件的開發(fā)人員有幾百人),個(gè)人獲取構(gòu) 建服務(wù)器控制權(quán)的機(jī)會(huì)就會(huì)大大減少;軟件代碼量大,每次編譯時(shí)間都很長(zhǎng), 一個(gè)人占用構(gòu)建服務(wù)器的時(shí)候,下一個(gè)人要等很長(zhǎng)時(shí)間才能使用到構(gòu)建服務(wù)器。這將影響到開發(fā)進(jìn)度。本發(fā)明的實(shí)施例提供了一種每日構(gòu)建方法,提高 了構(gòu)建服務(wù)器的集成編譯效率,該方法可以通過(guò)構(gòu)建服務(wù)器來(lái)實(shí)現(xiàn),也可以 通過(guò)個(gè)人終端,如PC來(lái)實(shí)現(xiàn)。本發(fā)明的實(shí)施例以構(gòu)建服務(wù)器為例,使用該
方法完成每日構(gòu)建的流程如圖1所示,包括 步驟IOI、檢查代碼的完整性;
代碼可以只存儲(chǔ)在一個(gè)代碼服務(wù)器且只在該代碼服務(wù)器上有一份拷貝, 也可以存在多個(gè)代碼服務(wù)器和版本拷貝??梢栽O(shè)定一個(gè)頂層代碼服務(wù)器用于 開發(fā)人員合入代碼,設(shè)置多個(gè)代碼服務(wù)器從頂層代碼服務(wù)器中下載版本,提 供給更多的構(gòu)建服務(wù)器下載代碼。
本發(fā)明實(shí)施例中,在代碼服務(wù)器從頂層代碼服務(wù)器拷貝前設(shè)定一個(gè)環(huán)境 變量,拷貝結(jié)束后改變這個(gè)環(huán)境變量的值。例如,設(shè)備環(huán)境變量VER_ID, 當(dāng)代碼服務(wù)器從上層服務(wù)器上下載代碼的時(shí)候,VER—ID的值為READY, 當(dāng)它下載完后,VER—ID的值變?yōu)镺K。
本步驟中,構(gòu)建服務(wù)器通過(guò)檢查這個(gè)環(huán)境變量的值判斷代碼服務(wù)器上的 代碼是否完整;如果代碼不完整,則結(jié)束每日構(gòu)建;如果代碼完整,則進(jìn)入 步驟102。
步驟102、在預(yù)置的構(gòu)建時(shí)間,自動(dòng)下載版本代碼;
本發(fā)明實(shí)施例中,為每日構(gòu)建預(yù)置一個(gè)構(gòu)建時(shí)間,構(gòu)建時(shí)間可以是一個(gè) 時(shí)間點(diǎn),如上午9點(diǎn),也可以是一個(gè)時(shí)間周期。
本步驟中,構(gòu)建服務(wù)器從代碼服務(wù)器上下載新的版本代碼。
版本代碼包含多個(gè)模塊,可以將更新后的各個(gè)模塊存儲(chǔ)在代碼服務(wù)器 上,構(gòu)建服務(wù)器下載時(shí),將版本代碼作為一個(gè)整體進(jìn)行下載。
步驟103、在下載代碼完成后,對(duì)所述版本代碼進(jìn)行編譯和檢查,生成 構(gòu)建日志文件;
本步驟中,根據(jù)版本設(shè)置編譯環(huán)境(不同版本可能依賴的硬件平臺(tái),編 譯器以及相關(guān)設(shè)置會(huì)有不同,再加應(yīng)用于不同產(chǎn)品,配置也會(huì)有不同)。配 置完成后,構(gòu)建服務(wù)器執(zhí)行預(yù)先設(shè)定的編譯命令,編譯代碼,編譯信息輸出 到編譯日志文件。在編譯的同時(shí),構(gòu)建服務(wù)器要對(duì)所述版本代碼進(jìn)行檢查,主要是使用代
碼靜態(tài)檢查工具對(duì)代碼進(jìn)行檢查。本發(fā)明實(shí)施例以使用pclint工具為例,根 據(jù)制定的編程規(guī)范配置pclint檢查項(xiàng),檢查代碼中是否有不符合編程規(guī)范的 地方,將產(chǎn)生的檢查信息輸出到檢查日志文件中。
步驟104、在所述構(gòu)建日志文件中查找關(guān)鍵字,分析抽取構(gòu)建信息;
本發(fā)明實(shí)施例中,構(gòu)建日志文件具體包括步驟103輸出的編譯日志文件 和檢查日志文件,現(xiàn)分別對(duì)分析兩種構(gòu)建日志的過(guò)程進(jìn)行說(shuō)明。
對(duì)編譯日志文件的分析又包括編譯告警分析統(tǒng)計(jì)和編譯錯(cuò)誤分析。
編譯告警分析統(tǒng)計(jì)即從編譯日志文件中抽取告警信息,將構(gòu)建版本信息 寫入郵件名,將告警文件名以及告警個(gè)數(shù)寫入郵件正文,同時(shí)生成郵件正文 的文本文件,具體的告警信息寫入郵件附件,調(diào)用郵件工具自動(dòng)將郵件發(fā)送 給責(zé)任人,記錄被發(fā)送的郵件正文對(duì)應(yīng)的文本文件名,作為郵件發(fā)送記錄; 從當(dāng)天或者歷史的郵件發(fā)送記錄中找到郵件正文,讀取對(duì)應(yīng)代碼文件告警數(shù)
量,根據(jù)代碼文件所屬開發(fā)小組統(tǒng)計(jì)各小組負(fù)責(zé)文件的告警情況;備份郵件 正文和郵件發(fā)送記錄,做告警統(tǒng)計(jì)資料。
編譯錯(cuò)誤分析即從編譯日志中抽取編譯錯(cuò)誤信息,具體的可以按照編譯 錯(cuò)誤相關(guān)的關(guān)鍵字來(lái)搜索錯(cuò)誤信息。不同的編譯器報(bào)錯(cuò)關(guān)鍵字會(huì)有不同,在 此不作詳述。將構(gòu)建版本信息寫入郵件名,發(fā)生編譯錯(cuò)誤的文件名寫入郵件 正文,詳細(xì)的編譯錯(cuò)誤信息寫入郵件附件,調(diào)用郵件工具,將郵件自動(dòng)發(fā)送 給責(zé)任人。
對(duì)檢查日志文件的分析包括從日志文件中抽取代碼違反編程規(guī)范的信 息,具體地可以查找某些關(guān)鍵字,關(guān)鍵字和檢查工具相關(guān),如pclint工具中 使用"error" 、 "warning"或者"info"等關(guān)鍵字。將構(gòu)建版本信息寫入郵 件名,將告警文件名和告警數(shù)量寫入郵件正文,同時(shí)生成郵件正文的文本文 件,將文件的詳細(xì)檢查信息寫入郵件附件,調(diào)用郵件工具,將郵件自動(dòng)發(fā)送 給責(zé)任人;將郵件正文名作為郵件發(fā)送記錄。從郵件發(fā)送記錄可以找到郵件 正文,讀取檢查告警數(shù)量,根據(jù)文件所屬開發(fā)小組統(tǒng)計(jì)各組一段時(shí)間或者指 定時(shí)間段內(nèi)的檢查情況,統(tǒng)計(jì)結(jié)果發(fā)給相關(guān)責(zé)任人。步驟105、檢查代碼編譯是否成功;
本發(fā)明實(shí)施例中,對(duì)代碼編譯成功后會(huì)生成最終的執(zhí)行文件,通過(guò)檢查 這些執(zhí)行文件是否存在以及生成時(shí)間,可以判斷編i奪是否成功。
如果編譯失敗,則結(jié)束每日構(gòu)建;如果編譯成功,則需要備份該代碼, 進(jìn)入步驟106。
步驟106、對(duì)編譯成功的代碼進(jìn)行備份;
本步驟中,構(gòu)建服務(wù)器在集成編譯成功后,對(duì)相應(yīng)的代碼進(jìn)行備份,具 體為
首先自動(dòng)生成備份目錄,可以用編譯成功時(shí)間估文目錄名,以區(qū)分不同時(shí) 間構(gòu)建成功的版本;然后將代碼拷貝到備份目錄打包。
上述流程中的各項(xiàng)功能可以通過(guò)批處理和perl語(yǔ)言實(shí)現(xiàn),便于維護(hù)。
本發(fā)明的實(shí)施例提供的每日構(gòu)建方法,設(shè)置了構(gòu)建時(shí)間,并在預(yù)置的構(gòu) 建時(shí)間,由構(gòu)建服務(wù)器自動(dòng)下載版本代碼,并對(duì)所述版本代碼進(jìn)行編譯和檢 查,生成構(gòu)建日志文件,實(shí)現(xiàn)了同時(shí)對(duì)多組代碼的集成編譯,提高了編譯效 率,解決了構(gòu)建服務(wù)器無(wú)法滿足編譯大量代碼的編譯需求的問(wèn)題;在生成構(gòu) 建曰志文件后,對(duì)構(gòu)建日志文件進(jìn)行分析,將告警信息通知給技術(shù)人員,實(shí) 現(xiàn)了對(duì)軟件問(wèn)題的快速定位和響應(yīng);且對(duì)構(gòu)建日志中的告警信息進(jìn)行統(tǒng)計(jì), 為系統(tǒng)性能分析提供了資料。此外,本發(fā)明實(shí)施例提供的每日構(gòu)建方法,還 可以應(yīng)用在PC上,降低了每日構(gòu)建的成本。
本發(fā)明的實(shí)施例還提供了一種每日構(gòu)建裝置,該裝置如圖2所示,包括
代碼下載模塊201,用于根據(jù)預(yù)置的編譯周期,自動(dòng)下載版本代碼;
編譯和檢查模塊202,用于在下載代碼完成后,對(duì)所述代碼進(jìn)行編譯和 檢查,生成構(gòu)建日志文件。
進(jìn)一步的,該每日構(gòu)建裝置如圖3所示,還包括
完整性檢查模塊203,用于檢查代碼的完整性,如果所述代碼不完整, 則結(jié)束每日構(gòu)建。進(jìn)一步的,該每日構(gòu)建裝置如圖4所示,還包括
日志分析模塊204,用于在所述構(gòu)建日志文件中查找關(guān)鍵字,分析抽取 構(gòu)建信息;
編譯結(jié)果檢查模塊205,用于檢查代碼編譯是否成功,在代碼編譯成功 時(shí)對(duì)該代碼進(jìn)行備份,或在代碼編譯失敗時(shí)結(jié)束每日構(gòu)建。
上述每日構(gòu)建裝置,可以與本發(fā)明的實(shí)施例提供的一種每日構(gòu)建方法相 結(jié)合,在預(yù)置的構(gòu)建時(shí)間,自動(dòng)下載版本代碼,并對(duì)所述版本代碼進(jìn)行編譯 和檢查,生成構(gòu)建日志文件,實(shí)現(xiàn)了同時(shí)對(duì)多組代碼的集成編譯,提高了編 譯效率,解決了構(gòu)建服務(wù)器無(wú)法滿足編譯大量代碼的編譯需求的問(wèn)題。
步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于 一種計(jì) 算機(jī)可讀存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組 合。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以采用硬件的形式實(shí)現(xiàn), 也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊 的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀 取存儲(chǔ)介質(zhì)中。
上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限 于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易 想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù) 范圍應(yīng)以權(quán)利要求所述的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種每日構(gòu)建方法,其特征在于,包括在預(yù)置的構(gòu)建時(shí)間,自動(dòng)下載版本代碼;在下載代碼完成后,對(duì)所述版本代碼進(jìn)行編譯和檢查,生成構(gòu)建日志文件。
2、 根據(jù)權(quán)利要求1所述的每日構(gòu)建方法,其特征在于,所述在預(yù)置的 構(gòu)建時(shí)間,自動(dòng)下載版本代碼的步驟之前,還包括檢查代碼的完整性,如果所述代碼不完整,則結(jié)束每日構(gòu)建。
3、 根據(jù)權(quán)利要求1所述的每日構(gòu)建方法,其特征在于,所述在下載代 碼完成后,對(duì)所述版本代碼進(jìn)行編譯和檢查,生成構(gòu)建日志文件的步驟之后, 還包括在所述構(gòu)建日志文件中查找關(guān)鍵字,分析抽取構(gòu)建信息。
4、 根據(jù)權(quán)利要求3所述的每日構(gòu)建方法,其特征在于,所述構(gòu)建日志文件包括編譯日志和檢查曰志,在所述構(gòu)建日志文件中查找關(guān)鍵字,分析抽 取構(gòu)建信息包括根據(jù)告警關(guān)鍵字,從編譯日志中抽取編譯告警信息,根據(jù)該編譯告警信 息生成告警郵件,發(fā)送并備份所述告警郵件;和,根據(jù)告警關(guān)鍵字,從檢查日志中抽取告警信息,根據(jù)該告警信息生成生 成告警郵件,發(fā)送并備份所述告警郵件。
5、 根據(jù)權(quán)利要求1所述的每日構(gòu)建方法,其特征在于,所述在下載代 碼完成后,對(duì)所述版本代碼進(jìn)行編譯和檢查,生成構(gòu)建日志文件的步驟之后, 還包括檢查代碼編譯是否成功;如果代碼編譯成功,對(duì)該代碼進(jìn)行備份;或,如果代碼編譯失敗,結(jié)束每日構(gòu)建。
6、 根據(jù)權(quán)利要求5所述的每日構(gòu)建方法,其特征在于,所述如果代碼編譯成功,對(duì)該代碼進(jìn)行備份包括生成版本備份目錄,記錄每日構(gòu)建的時(shí)間; 將所述代碼拷貝到所述版本備份目錄下打包備份。
7、 一種每日構(gòu)建裝置,其特征在于,包括代碼下載模塊,用于根據(jù)預(yù)置的編譯周期,自動(dòng)下載版本代碼;編譯和檢查模塊,用于在下載代碼完成后,對(duì)所述代碼進(jìn)行編譯和檢查, 生成構(gòu)建日志文件。
8、 根據(jù)權(quán)利要求7所述的每日構(gòu)建裝置,其特征在于,還包括完整性檢查模塊,用于檢查代碼的完整性,如杲所述代碼不完整,則結(jié) 束每日構(gòu)建。
9、 根據(jù)權(quán)利要求7所述的每日構(gòu)建裝置,其特征在于,還包括 曰志分析模塊,用于在所述構(gòu)建日志文件中查找關(guān)鍵字,分析抽取構(gòu)建信息;編譯結(jié)果檢查模塊,用于檢查代碼編譯是否成功,在代碼編譯成功時(shí)對(duì) 該代碼進(jìn)行備份,或在代碼編譯失敗時(shí)結(jié)束每日構(gòu)建。
10、 根據(jù)權(quán)利要求7至權(quán)利要求9所述的每日構(gòu)建裝置,其特征在于, 該每日構(gòu)建裝置集成于構(gòu)建服務(wù)器或個(gè)人終端中。
全文摘要
本發(fā)明公開了一種每日構(gòu)建方法和裝置。涉及軟件技術(shù)領(lǐng)域;解決了構(gòu)建服務(wù)器無(wú)法滿足編譯大量代碼的編譯需求的問(wèn)題。該方法包括在預(yù)置的構(gòu)建時(shí)間,自動(dòng)下載版本代碼;在下載代碼完成后,對(duì)所述版本代碼進(jìn)行編譯和檢查,生成構(gòu)建日志文件。本發(fā)明提供的技術(shù)方案適用于版本質(zhì)量控制。
文檔編號(hào)G06F9/44GK101650653SQ200910171458
公開日2010年2月17日 申請(qǐng)日期2009年9月4日 優(yōu)先權(quán)日2009年9月4日
發(fā)明者劉東棟, 田 朱, 剛 王 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
长汀县| 佛学| 全南县| 温州市| 财经| 沅江市| 汉阴县| 栾川县| 定边县| 井研县| 曲松县| 安塞县| 施秉县| 巍山| 新乡市| 民丰县| 宁明县| 乾安县| 阿勒泰市| 长乐市| 德昌县| 确山县| 雷州市| 延庆县| 南丹县| 河源市| 阳新县| 汽车| 建瓯市| 黄平县| 诏安县| 贵阳市| 卓尼县| 郸城县| 邵阳县| 台前县| 开化县| 台湾省| 嘉鱼县| 开江县| 永城市|