編譯發(fā)布方法及發(fā)布服務(wù)器的制造方法
【專利摘要】本發(fā)明提供一種編譯發(fā)布方法及發(fā)布服務(wù)器,編譯發(fā)布方法包括:發(fā)布服務(wù)器接收本地發(fā)送來的待編譯子模塊,并對待編譯子模塊進行編譯,若編譯成功則將待編譯子模塊匯總至發(fā)布服務(wù)器存儲的待發(fā)布應(yīng)用中,若編譯失敗則發(fā)出提示;發(fā)布服務(wù)器每隔一第一時間段對待發(fā)布應(yīng)用進行編譯,并在編譯失敗時發(fā)出提示;發(fā)布服務(wù)器判斷是否需要發(fā)布待發(fā)布應(yīng)用,并在需要發(fā)布時對待發(fā)布應(yīng)用進行編譯,若編譯成功則發(fā)布待發(fā)布應(yīng)用,若編譯失敗則發(fā)出提示。本發(fā)明能夠有效地縮短應(yīng)用開發(fā)時間、實時性強。
【專利說明】編譯發(fā)布方法及發(fā)布服務(wù)器
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種編譯發(fā)布方法,特別涉及一種利用發(fā)布服務(wù)器實現(xiàn)的編譯發(fā)布方 法以及發(fā)布服務(wù)器。
【背景技術(shù)】
[0002] 隨著信息技術(shù)和互聯(lián)網(wǎng)的發(fā)展,應(yīng)用開發(fā)對時效性的要求越來越高,如今為了節(jié) 約開發(fā)時間,應(yīng)用的開發(fā)越來越傾向于由多個開發(fā)人員合作進行。每一個開發(fā)人員完成自 己負責(zé)的部分,提交到發(fā)布服務(wù)器上,發(fā)布服務(wù)器在發(fā)布前進行當(dāng)前版本整體編譯并進行 發(fā)布。
[0003] 這樣的開發(fā)環(huán)境存在一個不可避免的問題:盡管每一個開發(fā)人員可以保證自己開 發(fā)的子模塊代碼在自己的機器上能夠正常通過編譯,但是無法保證自己開發(fā)的代碼發(fā)到發(fā) 布服務(wù)器之后發(fā)布服務(wù)器能夠正常通過編譯,這就涉及到發(fā)布服務(wù)器與本地計算機之間的 兼容性問題。而且,現(xiàn)有技術(shù)中,一般是在需要發(fā)布待發(fā)布應(yīng)用之前才進行代碼編譯,無法 保證發(fā)布服務(wù)器發(fā)布之前的編譯能夠順利通過,因為在發(fā)布之前發(fā)布服務(wù)器會接收到許多 更改的代碼文件并匯總這些代碼文件,匯總后發(fā)布服務(wù)器中的該應(yīng)用各子模塊代碼間有可 能會相互影響,甚至可能與其它應(yīng)用產(chǎn)生沖突,導(dǎo)致編譯錯誤,進而導(dǎo)致待發(fā)布應(yīng)用不能及 時發(fā)布出去,后續(xù)需要對待發(fā)布應(yīng)用進行錯誤分析并通知相應(yīng)的負責(zé)人更改代碼,這將進 一步拖延發(fā)布時間,無法體現(xiàn)應(yīng)用開發(fā)的實時性。
[0004] 一個應(yīng)用開發(fā)時間的長短往往決定著一個業(yè)務(wù)的成功與失敗,縮短應(yīng)用的開發(fā)時 間有著非常重要的意義。目前針對發(fā)布服務(wù)器,提高應(yīng)用發(fā)布的實時性的技術(shù)比較欠缺。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中的編譯發(fā)布方法僅在需要發(fā)布 時才進行編譯,由此經(jīng)常會由于編譯錯誤而導(dǎo)致無法及時發(fā)布,實時性差的缺陷,提供一種 能夠有效地縮短應(yīng)用開發(fā)時間、實時性強的編譯發(fā)布方法及發(fā)布服務(wù)器。
[0006] 本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:
[0007] 本發(fā)明提供一種編譯發(fā)布方法,其特點在于,其包括以下步驟:
[0008] -發(fā)布服務(wù)器接收本地發(fā)送來的待編譯子模塊,并對該待編譯子模塊進行編譯, 若編譯成功則將該待編譯子模塊匯總至該發(fā)布服務(wù)器存儲的待發(fā)布應(yīng)用中,若編譯失敗則 發(fā)出提示;
[0009] 該發(fā)布服務(wù)器每隔一第一時間段對該待發(fā)布應(yīng)用進行編譯,并在編譯失敗時發(fā)出 提示;
[0010] 該發(fā)布服務(wù)器判斷是否需要發(fā)布該待發(fā)布應(yīng)用,并在需要發(fā)布時對該待發(fā)布應(yīng)用 進行編譯,若編譯成功則發(fā)布該待發(fā)布應(yīng)用,若編譯失敗則發(fā)出提示。
[0011] 在本方案中,該待編譯子模塊指的是開發(fā)人員提交的新增、更改或空的子模塊代 碼(用于刪除待發(fā)布應(yīng)用中的部分代碼單元)。將待編譯子模塊匯總至待發(fā)布服務(wù)器中指 的是將待編譯子模塊添加至待發(fā)布應(yīng)用中,或利用待編譯子模塊更換與待編譯子模塊的塊 名相匹配的代碼單元,或?qū)⒋l(fā)布應(yīng)用中部分代碼單元刪除。
[0012] 在現(xiàn)有技術(shù)中經(jīng)常會出現(xiàn)這一情況:開發(fā)人員開發(fā)的代碼在自己的機器上能夠正 常通過編譯,但是開發(fā)人員將開發(fā)的代碼提交至發(fā)布服務(wù)器之后,代碼在發(fā)布服務(wù)器上沒 有正常通過編譯。為了避免這種情況的發(fā)生,本發(fā)明對開發(fā)人員提交的每一個待編譯子模 塊均進行編譯,待編譯子模塊編譯成功則將其匯總至待發(fā)布應(yīng)用中,待編譯子模塊編譯不 成功則發(fā)布服務(wù)器就發(fā)出提示,例如通過郵件、短信等方式將編譯失敗信息通知至相關(guān)負 責(zé)人。
[0013] 在現(xiàn)有技術(shù)中還經(jīng)常會出現(xiàn)這樣的情況:設(shè)定待發(fā)布應(yīng)用包括四個代碼單元,這 四個代碼單元的單元名分別為A、B、C和D。后續(xù)某一開發(fā)人員又新提交一待編譯子模塊, 新提交的待編譯子模塊的塊名為A,發(fā)布服務(wù)器對新提交的待編譯子模塊進行編譯且編譯 成功,則發(fā)布服務(wù)器利用新提交的待編譯子模塊A替換待發(fā)布應(yīng)用中的單元名為A的代碼 單元。這時,待發(fā)布應(yīng)用中的代碼單元A、B、C和D單獨編譯均是編譯成功的,但對待發(fā)布應(yīng) 用這一整體進行編譯卻編譯失敗,即待發(fā)布應(yīng)用中的每一代碼單元單獨編譯均編譯成功, 卻無法保證對這些代碼單元進行整體編譯能夠編譯成功。所以,本發(fā)明設(shè)計了全量編譯這 一步驟,發(fā)布服務(wù)器每隔一固定時間段就對待發(fā)布應(yīng)用進行編譯,編譯成功則說明將這些 代碼單元作為一個整體進行編譯也能夠編譯成功,編譯失敗則發(fā)出提示,例如通過郵件、短 信等方式將編譯失敗信息通知給相關(guān)負責(zé)人。
[0014] 發(fā)布服務(wù)器在到達整體編譯的時刻時對待發(fā)布應(yīng)用進行整體編譯,其后發(fā)布服務(wù) 器收到開發(fā)人員發(fā)送來的一個待編譯子模塊,發(fā)布服務(wù)器對發(fā)送來的待編譯子模塊進行編 譯且編譯成功,并將待編譯子模塊匯總至待發(fā)布應(yīng)用中,然后發(fā)布服務(wù)器判斷出需要發(fā)布 待發(fā)布應(yīng)用,但由于還未到發(fā)布服務(wù)器下一次編譯待發(fā)布應(yīng)用的時間,所以發(fā)布服務(wù)器并 未對更新后的待發(fā)布應(yīng)用進行整體編譯就將其發(fā)布出去,由此導(dǎo)致發(fā)布服務(wù)器發(fā)布出去的 待發(fā)布應(yīng)用是未經(jīng)整體編譯的待發(fā)布應(yīng)用,有可能發(fā)布出去的待發(fā)布應(yīng)用經(jīng)整體編譯會編 譯失敗。而本發(fā)明在發(fā)布服務(wù)器判斷出需要發(fā)布待發(fā)布應(yīng)用時,對待發(fā)布應(yīng)用進行整體編 譯,這種設(shè)計方式能夠有效地避免發(fā)布出去的待發(fā)布應(yīng)用是未通過編譯的待發(fā)布應(yīng)用,保 證發(fā)布出去的待發(fā)布應(yīng)用始終是能夠編譯成功的待發(fā)布應(yīng)用。
[0015] 較佳地,該發(fā)布服務(wù)器在該待編譯子模塊編譯成功后,將該待編譯子模塊的塊名 與該待發(fā)布應(yīng)用中的代碼單元的單元名進行匹配,若匹配成功則利用該待編譯子模塊替換 相匹配的代碼單元,若匹配失敗則將該待編譯子模塊添加至該待發(fā)布應(yīng)用中。這里的替換 應(yīng)理解為:若待編譯子模塊包含的代碼是對相匹配的代碼單元包含的代碼的進一步更改, 則發(fā)布服務(wù)器直接將相匹配的代碼單元更換為待編譯子模塊,若待編譯子模塊中沒有包含 任何代碼,則發(fā)布服務(wù)器將相匹配的代碼單元更換為空的待編譯子模塊,即相當(dāng)于將相匹 配的代碼單元刪除。
[0016] 較佳地,該發(fā)布服務(wù)器在接收該待編譯子模塊的同時記錄接收該待編譯子模塊的 時間。
[0017] 較佳地,該發(fā)布服務(wù)器在需要發(fā)布時,判斷當(dāng)前時間至最近一次編譯該待發(fā)布應(yīng) 用的時間內(nèi)是否接收到待編譯子模塊,若是則對該待發(fā)布應(yīng)用進行編譯,若否則發(fā)布該待 發(fā)布應(yīng)用。本方案能夠有效地保證發(fā)布出去的待發(fā)布應(yīng)用是編譯成功的待發(fā)布應(yīng)用,且本 方案能夠盡量地縮短發(fā)布待發(fā)布應(yīng)用所需的時間。
[0018] 在本方案中,該發(fā)布服務(wù)器判斷是否需要發(fā)布該待發(fā)布應(yīng)用,并在需要發(fā)布時判 斷是否需要對該待發(fā)布應(yīng)用進行編譯,判斷是否需要對該待發(fā)布應(yīng)用進行編譯的方式是通 過判斷當(dāng)前時間至最近一次編譯該待發(fā)布應(yīng)用的時間內(nèi)是否接收到待編譯子模塊的技術(shù) 手段來實現(xiàn)的,若需要編譯則立即編譯,編譯成功則發(fā)布該待發(fā)布應(yīng)用,編譯失敗則發(fā)出提 示,若不需要編譯則立即發(fā)布該待發(fā)布應(yīng)用。
[0019] 較佳地,該發(fā)布服務(wù)器在編譯失敗時分析編譯失敗的原因、位置以及該位置處代 碼所在的代碼單元對應(yīng)的單元名。
[0020] 本方案中,發(fā)布服務(wù)器一接收到開發(fā)人員提交的待編譯子模塊就對待編譯子模塊 進行編譯,一旦出現(xiàn)編譯錯誤,發(fā)布服務(wù)器就能夠自動準確地定位出編譯失敗的位置、分析 出編譯失敗的原因等。
[0021] 發(fā)布服務(wù)器每隔一第一時間段就對待發(fā)布應(yīng)用進行整體編譯,一旦出現(xiàn)編譯錯 誤,發(fā)布服務(wù)器就能夠自動準確地定位出編譯失敗的位置、分析出編譯失敗的原因等。
[0022] 發(fā)布服務(wù)器在判斷出需要發(fā)布待發(fā)布應(yīng)用時對待發(fā)布應(yīng)用進行整體編譯,一旦出 現(xiàn)編譯錯誤,發(fā)布服務(wù)器就能夠自動準確地定位出編譯失敗的位置、分析出編譯失敗的原 因等。
[0023] 較佳地,該發(fā)布服務(wù)器統(tǒng)計一第二時間段內(nèi)編譯失敗的次數(shù)、位置以及該位置處 代碼所在的代碼單元的責(zé)任人,并生成報表。
[0024] 本發(fā)明還提供一種發(fā)布服務(wù)器,其特點在于,其包括一增量編譯模塊、一匯總模 塊、一提不模塊、一全量編譯模塊、一第一判斷模塊、一即時編譯模塊和一發(fā)布模塊;
[0025] 該增量編譯模塊用于接收本地發(fā)送來的待編譯子模塊,并對該待編譯子模塊進行 編譯,在編譯成功時調(diào)用該匯總模塊,在編譯失敗時調(diào)用該提示模塊;
[0026] 該匯總模塊用于將該待編譯子模塊匯總至該發(fā)布服務(wù)器存儲的待發(fā)布應(yīng)用中;
[0027] 該提示模塊用于發(fā)出提示;
[0028] 該全量編譯模塊用于每隔一第一時間段對該待發(fā)布應(yīng)用進行編譯,并在編譯失敗 時調(diào)用該提示模塊;
[0029] 該第一判斷模塊用于判斷是否需要發(fā)布該待發(fā)布應(yīng)用,并在需要發(fā)布時調(diào)用該即 時編譯模塊;
[0030] 該即時編譯模塊用于對該待發(fā)布應(yīng)用進行編譯,在編譯成功時調(diào)用該發(fā)布模塊發(fā) 布該待發(fā)布應(yīng)用,在編譯失敗時調(diào)用該提示模塊。
[0031] 較佳地,該匯總模塊包括一匹配模塊、一替換模塊和一添加模塊;
[0032] 該匹配模塊用于在該待編譯子模塊編譯成功后,將該待編譯子模塊的塊名與該待 發(fā)布應(yīng)用中的代碼單元的單元名進行匹配,在匹配成功時調(diào)用該替換模塊,在匹配失敗時 調(diào)用該添加模塊;
[0033] 該替換模塊用于利用該待編譯子模塊替換相匹配的代碼單元;
[0034] 該添加模塊用于將該待編譯子模塊添加至該待發(fā)布應(yīng)用中。
[0035] 較佳地,該發(fā)布服務(wù)器還包括一記錄模塊,該記錄模塊用于在接收該待編譯子模 塊的同時記錄接收該待編譯子模塊的時間。
[0036] 較佳地,該發(fā)布服務(wù)器還包括一第二判斷模塊,該第二判斷模塊用于在需要發(fā)布 時,判斷當(dāng)前時間至最近一次編譯該待發(fā)布應(yīng)用的時間內(nèi)是否接收到待編譯子模塊,若是 則調(diào)用該即時編譯模塊,若否則調(diào)用該發(fā)布模塊。
[0037] 較佳地,該發(fā)布服務(wù)器還包括一分析模塊,該分析模塊用于在編譯失敗時分析編 譯失敗的原因、位置以及該位置處代碼所在的代碼單元對應(yīng)的單元名。
[0038] 較佳地,該發(fā)布服務(wù)器還包括一統(tǒng)計模塊,該統(tǒng)計模塊用于統(tǒng)計一第二時間段內(nèi) 編譯失敗的次數(shù)、位置以及該位置處代碼所在的代碼單元的責(zé)任人,并生成報表。
[0039] 在符合本領(lǐng)域常識的基礎(chǔ)上,上述各優(yōu)選條件,可任意組合,即得本發(fā)明各較佳實 例。
[0040] 本發(fā)明的積極進步效果在于:
[0041] 本發(fā)明的編譯發(fā)布方法及發(fā)布服務(wù)器,能夠有效地縮短發(fā)布待發(fā)布應(yīng)用所需的時 間,進而縮短應(yīng)用開發(fā)時間,并具有實時性強的優(yōu)點。
【專利附圖】
【附圖說明】
[0042] 圖1為本發(fā)明的較佳實施例的發(fā)布服務(wù)器的結(jié)構(gòu)框圖。
【具體實施方式】
[0043] 下面通過實施例的方式進一步說明本發(fā)明,但并不因此將本發(fā)明限制在所述的實 施例范圍之中。
[0044] 本實施例提供一種編譯發(fā)布方法,其包括以下步驟:
[0045] 一發(fā)布服務(wù)器接收本地發(fā)送來的待編譯子模塊,同時記錄接收該待編譯子模塊的 時間,并對該待編譯子模塊進行編譯,若編譯成功則將該待編譯子模塊的塊名與該待發(fā)布 應(yīng)用中的代碼單元的單元名進行匹配,若匹配成功則利用該待編譯子模塊替換相匹配的代 碼單元,若匹配失敗則將該待編譯子模塊添加至該待發(fā)布應(yīng)用中;若編譯失敗則該發(fā)布服 務(wù)器發(fā)出提示,且分析編譯失敗的原因、位置以及該待編譯子模塊的塊名。
[0046] 本步驟中,發(fā)布服務(wù)器接收到開發(fā)人員提交的待編譯子模塊后對待編譯子模塊進 行編譯,一旦出現(xiàn)編譯錯誤,發(fā)布服務(wù)器就能夠自動準確地定位出編譯失敗的位置、分析出 編譯失敗的原因等。
[0047] 該發(fā)布服務(wù)器每隔一第一時間段對該待發(fā)布應(yīng)用進行編譯,并在編譯失敗時該發(fā) 布服務(wù)器發(fā)出提示,且分析編譯失敗的原因、位置以及該位置處代碼所在的代碼單元對應(yīng) 的單元名。
[0048] 本步驟中,發(fā)布服務(wù)器每隔一固定時間段就對待發(fā)布應(yīng)用進行整體編譯,一旦出 現(xiàn)編譯錯誤,發(fā)布服務(wù)器就能夠自動準確地定位出編譯失敗的位置、分析出編譯失敗的原 因等。
[0049] 該發(fā)布服務(wù)器判斷是否需要發(fā)布該待發(fā)布應(yīng)用,并在需要發(fā)布時判斷當(dāng)前時間至 最近一次編譯該待發(fā)布應(yīng)用的時間內(nèi)是否接收到待編譯子模塊,若是則對該待發(fā)布應(yīng)用進 行編譯,若編譯成功則發(fā)布該待發(fā)布應(yīng)用,若編譯失敗則發(fā)出提示并分析編譯失敗的原因、 位置以及該位置處代碼所在的代碼單元對應(yīng)的單元名;若否則發(fā)布該待發(fā)布應(yīng)用。本步驟 能夠有效地保證發(fā)布出去的待發(fā)布應(yīng)用是編譯成功的待發(fā)布應(yīng)用。
[0050] 另外,該發(fā)布服務(wù)器還統(tǒng)計一第二時間段(例如24小時)內(nèi)編譯失敗的次數(shù)、位 置以及該位置處代碼所在的代碼單元的責(zé)任人,并生成報表。
[0051] 參考圖1所示,本實施例還提供一種發(fā)布服務(wù)器,其包括一增量編譯模塊1、一記 錄模塊2、一匯總模塊3、一提不模塊4、一分析模塊5、一全量編譯模塊6、一第一判斷模塊 7、一第二判斷模塊8、一即時編譯模塊9、一發(fā)布模塊10和一統(tǒng)計模塊11。其中,該匯總模 塊3包括一匹配模塊31、一替換模塊32和一添加模塊33。
[0052] 上面介紹了該發(fā)布服務(wù)器包括的功能模塊,下面具體介紹各功能模塊所具備的功 能:
[0053] 該增量編譯模塊1用于接收本地發(fā)送來的待編譯子模塊,并對該待編譯子模塊進 行編譯,在編譯成功時調(diào)用該匯總模塊3,在編譯失敗時調(diào)用該提示模塊4和該分析模塊 5 ;
[0054] 該記錄模塊2用于在接收該待編譯子模塊的同時記錄接收該待編譯子模塊的時 間;
[0055] 該匯總模塊3用于將該待編譯子模塊匯總至該發(fā)布服務(wù)器存儲的待發(fā)布應(yīng)用中, 具體地,該匹配模塊31用于在該待編譯子模塊編譯成功后,將該待編譯子模塊的塊名與該 待發(fā)布應(yīng)用中的代碼單元的單元名進行匹配,在匹配成功時調(diào)用該替換模塊32,在匹配失 敗時調(diào)用該添加模塊33,該替換模塊32用于利用該待編譯子模塊替換相匹配的代碼單元, 該添加模塊33用于將該待編譯子模塊添加至該待發(fā)布應(yīng)用中;
[0056] 該提示模塊4用于發(fā)出提示;
[0057] 該分析模塊5用于在編譯失敗時分析編譯失敗的原因、位置以及該位置處代碼所 在的代碼單元對應(yīng)的單元名;
[0058] 該全量編譯模塊6用于每隔一第一時間段對該待發(fā)布應(yīng)用進行編譯,并在編譯失 敗時調(diào)用該提示模塊4和該分析模塊5 ;
[0059] 該第一判斷模塊7用于判斷是否需要發(fā)布該待發(fā)布應(yīng)用,并在需要發(fā)布時調(diào)用該 第二判斷模塊8 ;
[0060] 該第二判斷模塊8用于判斷當(dāng)前時間至最近一次編譯該待發(fā)布應(yīng)用的時間內(nèi)是 否接收到待編譯子模塊,若是則調(diào)用該即時編譯模塊9,若否則調(diào)用該發(fā)布模塊10發(fā)布該 待發(fā)布應(yīng)用;
[0061] 該即時編譯模塊9用于對該待發(fā)布應(yīng)用進行編譯,在編譯成功時調(diào)用該發(fā)布模塊 10,在編譯失敗時調(diào)用該提示模塊4和該分析模塊5 ;
[0062] 該統(tǒng)計模塊11用于統(tǒng)計一第二時間段內(nèi)編譯失敗的次數(shù)、位置以及該位置處代 碼所在的代碼單元的責(zé)任人,并生成報表。
[0063] 下面舉一具體的例子來具體說明本發(fā)明,以使本領(lǐng)域的技術(shù)人員能夠更好地理解 本發(fā)明的技術(shù)方案:
[0064] 設(shè)定待發(fā)布應(yīng)用包括3個代碼單元,這3個代碼單元的單元名分別為A、B和C。后 續(xù)某一開發(fā)人員發(fā)送一個待編譯子模塊,該待編譯子模塊的塊名為D,該待編譯子模塊為新 增的子模塊代碼。
[0065] 該發(fā)布服務(wù)器接收該開發(fā)人員發(fā)送來的該待編譯子模塊,并對該待編譯子模塊進 行編譯并且編譯成功,則該發(fā)布服務(wù)器將該待編譯子模塊的塊名D與該待發(fā)布應(yīng)用中的代 碼單元的單元名(即A、B和C)進行匹配,匹配失敗則將該待編譯子模塊添加至該待發(fā)布應(yīng) 用中,這時待發(fā)布應(yīng)用中的代碼單元有4個,分別為代碼單元A、B、C和D。在這之后,恰好 到對該待發(fā)布應(yīng)用進行整體編譯的時間,則該發(fā)布服務(wù)器對該待發(fā)布應(yīng)用進行整體編譯且 編譯成功。
[0066] 后續(xù)某一開發(fā)人員又新提交一待編譯子模塊,新提交的待編譯子模塊的塊名為C, 該發(fā)布服務(wù)器接收該開發(fā)人員新提交的待編譯子模塊,并對該待編譯子模塊進行編譯并且 編譯成功,則該發(fā)布服務(wù)器將該待編譯子模塊的塊名C與該待發(fā)布應(yīng)用中的代碼單元的單 元名(即A、B、C和D)進行匹配,匹配成功則該發(fā)布服務(wù)器利用該待編譯子模塊C替換該待 發(fā)布應(yīng)用中的代碼單元C。
[0067] 在這之后,到達對該待發(fā)布應(yīng)用進行整體編譯的時間,則該發(fā)布服務(wù)器對該待發(fā) 布應(yīng)用進行整體編譯且編譯失敗,并自動分析編譯失敗的原因、位置以及該位置處代碼所 在的代碼單元對應(yīng)的單元名,然后通過郵件的方式將上述編譯失敗信息通知至相關(guān)負責(zé) 人,相關(guān)負責(zé)人對該待發(fā)布應(yīng)用進行人工修復(fù)。在下一次整體編譯時間到達時,該發(fā)布服務(wù) 器對修復(fù)后的待發(fā)布應(yīng)用進行整體編譯且編譯成功。
[0068] 后續(xù)某一開發(fā)人員又新提交一待編譯子模塊,新提交的待編譯子模塊的塊名為A, 該發(fā)布服務(wù)器接收該開發(fā)人員新提交的待編譯子模塊,并對該待編譯子模塊進行編譯并且 編譯成功,則該發(fā)布服務(wù)器將該待編譯子模塊的塊名A與該待發(fā)布應(yīng)用中的代碼單元的單 元名(即A、B、C和D)進行匹配,匹配成功則該發(fā)布服務(wù)器利用該待編譯子模塊A替換該待 發(fā)布應(yīng)用中的代碼單元A。
[0069] 在這之后,到達對該待發(fā)布應(yīng)用進行整體編譯的時間,則該發(fā)布服務(wù)器對該待發(fā) 布應(yīng)用進行整體編譯且編譯成功。
[0070] 此后,該發(fā)布服務(wù)器在某一時刻判斷出需要發(fā)布該待發(fā)布應(yīng)用,并判斷此時此刻 至最近一次編譯該待發(fā)布應(yīng)用的時間內(nèi)是否接收到待編譯子模塊,判斷出未接收到待編譯 子模塊,則該發(fā)布服務(wù)器發(fā)布該待發(fā)布應(yīng)用,發(fā)布出去的待發(fā)布應(yīng)用是編譯成功的待發(fā)布 應(yīng)用。
[0071] 本發(fā)明能夠有效地縮短發(fā)布待發(fā)布應(yīng)用所需的時間,進而縮短應(yīng)用開發(fā)時間,并 具有實時性強的優(yōu)點。
[0072] 雖然以上描述了本發(fā)明的【具體實施方式】,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,這些 僅是舉例說明,本發(fā)明的保護范圍是由所附權(quán)利要求書限定的。本領(lǐng)域的技術(shù)人員在不背 離本發(fā)明的原理和實質(zhì)的前提下,可以對這些實施方式做出多種變更或修改,但這些變更 和修改均落入本發(fā)明的保護范圍。
【權(quán)利要求】
1. 一種編譯發(fā)布方法,其特征在于,其包括以下步驟: 一發(fā)布服務(wù)器接收本地發(fā)送來的待編譯子模塊,并對該待編譯子模塊進行編譯,若編 譯成功則將該待編譯子模塊匯總至該發(fā)布服務(wù)器存儲的待發(fā)布應(yīng)用中,若編譯失敗則發(fā)出 提示; 該發(fā)布服務(wù)器每隔一第一時間段對該待發(fā)布應(yīng)用進行編譯,并在編譯失敗時發(fā)出提 示; 該發(fā)布服務(wù)器判斷是否需要發(fā)布該待發(fā)布應(yīng)用,并在需要發(fā)布時對該待發(fā)布應(yīng)用進行 編譯,若編譯成功則發(fā)布該待發(fā)布應(yīng)用,若編譯失敗則發(fā)出提示。
2. 如權(quán)利要求1所述的編譯發(fā)布方法,其特征在于,該發(fā)布服務(wù)器在該待編譯子模塊 編譯成功后,將該待編譯子模塊的塊名與該待發(fā)布應(yīng)用中的代碼單元的單元名進行匹配, 若匹配成功則利用該待編譯子模塊替換相匹配的代碼單元,若匹配失敗則將該待編譯子模 塊添加至該待發(fā)布應(yīng)用中。
3. 如權(quán)利要求1所述的編譯發(fā)布方法,其特征在于,該發(fā)布服務(wù)器在接收該待編譯子 模塊的同時記錄接收該待編譯子模塊的時間。
4. 如權(quán)利要求1所述的編譯發(fā)布方法,其特征在于,該發(fā)布服務(wù)器在需要發(fā)布時,判斷 當(dāng)前時間至最近一次編譯該待發(fā)布應(yīng)用的時間內(nèi)是否接收到待編譯子模塊,若是則對該待 發(fā)布應(yīng)用進行編譯,若否則發(fā)布該待發(fā)布應(yīng)用。
5. 如權(quán)利要求1-4中任意一項所述的編譯發(fā)布方法,其特征在于,該發(fā)布服務(wù)器在編 譯失敗時分析編譯失敗的原因、位置以及該位置處代碼所在的代碼單元對應(yīng)的單元名。
6. 如權(quán)利要求1-4中任意一項所述的編譯發(fā)布方法,其特征在于,該發(fā)布服務(wù)器統(tǒng)計 一第二時間段內(nèi)編譯失敗的次數(shù)、位置以及該位置處代碼所在的代碼單元的責(zé)任人,并生 成報表。
7. -種發(fā)布服務(wù)器,其特征在于,其包括一增量編譯模塊、一匯總模塊、一提示模塊、一 全量編譯模塊、一第一判斷模塊、一即時編譯模塊和一發(fā)布模塊; 該增量編譯模塊用于接收本地發(fā)送來的待編譯子模塊,并對該待編譯子模塊進行編 譯,在編譯成功時調(diào)用該匯總模塊,在編譯失敗時調(diào)用該提示模塊; 該匯總模塊用于將該待編譯子模塊匯總至該發(fā)布服務(wù)器存儲的待發(fā)布應(yīng)用中; 該提示模塊用于發(fā)出提示; 該全量編譯模塊用于每隔一第一時間段對該待發(fā)布應(yīng)用進行編譯,并在編譯失敗時調(diào) 用該提示模塊; 該第一判斷模塊用于判斷是否需要發(fā)布該待發(fā)布應(yīng)用,并在需要發(fā)布時調(diào)用該即時編 譯豐吳塊; 該即時編譯模塊用于對該待發(fā)布應(yīng)用進行編譯,在編譯成功時調(diào)用該發(fā)布模塊發(fā)布該 待發(fā)布應(yīng)用,在編譯失敗時調(diào)用該提示模塊。
8. 如權(quán)利要求7所述的發(fā)布服務(wù)器,其特征在于,該匯總模塊包括一匹配模塊、一替換 模塊和一添加模塊; 該匹配模塊用于在該待編譯子模塊編譯成功后,將該待編譯子模塊的塊名與該待發(fā)布 應(yīng)用中的代碼單元的單元名進行匹配,在匹配成功時調(diào)用該替換模塊,在匹配失敗時調(diào)用 該添加模塊; 該替換模塊用于利用該待編譯子模塊替換相匹配的代碼單元; 該添加模塊用于將該待編譯子模塊添加至該待發(fā)布應(yīng)用中。
9. 如權(quán)利要求7所述的發(fā)布服務(wù)器,其特征在于,該發(fā)布服務(wù)器還包括一記錄模塊,該 記錄模塊用于在接收該待編譯子模塊的同時記錄接收該待編譯子模塊的時間。
10. 如權(quán)利要求7所述的發(fā)布服務(wù)器,其特征在于,該發(fā)布服務(wù)器還包括一第二判斷模 塊,該第二判斷模塊用于在需要發(fā)布時,判斷當(dāng)前時間至最近一次編譯該待發(fā)布應(yīng)用的時 間內(nèi)是否接收到待編譯子模塊,若是則調(diào)用該即時編譯模塊,若否則調(diào)用該發(fā)布模塊。
11. 如權(quán)利要求7-10中任意一項所述的發(fā)布服務(wù)器,其特征在于,該發(fā)布服務(wù)器還包 括一分析模塊,該分析模塊用于在編譯失敗時分析編譯失敗的原因、位置以及該位置處代 碼所在的代碼單元對應(yīng)的單元名。
12. 如權(quán)利要求7-10中任意一項所述的發(fā)布服務(wù)器,其特征在于,該發(fā)布服務(wù)器還包 括一統(tǒng)計模塊,該統(tǒng)計模塊用于統(tǒng)計一第二時間段內(nèi)編譯失敗的次數(shù)、位置以及該位置處 代碼所在的代碼單元的責(zé)任人,并生成報表。
【文檔編號】G06F9/44GK104090763SQ201410330653
【公開日】2014年10月8日 申請日期:2014年7月11日 優(yōu)先權(quán)日:2014年7月11日
【發(fā)明者】葉亞明 申請人:攜程計算機技術(shù)(上海)有限公司