本發(fā)明涉及一種互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種項(xiàng)目代碼信息的更新部署方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,互聯(lián)網(wǎng)企業(yè)面對的產(chǎn)品項(xiàng)目越來越多,為了滿足不同用戶的需求,產(chǎn)品項(xiàng)目需要不斷的更新、版本迭代等,伴隨而來的,產(chǎn)品項(xiàng)目中的項(xiàng)目代碼信息也需要不斷的進(jìn)行發(fā)版與更新操作。
目前,在項(xiàng)目代碼信息更新部署的過程中,運(yùn)維人員還是依靠傳統(tǒng)的手動(dòng)更新方式,具體將變更后的項(xiàng)目代碼信息上傳到項(xiàng)目服務(wù)器上,并手動(dòng)編程代碼更新部署的每一個(gè)處理流程進(jìn)而來實(shí)現(xiàn)項(xiàng)目代碼信息的更新部署。
然而,隨著產(chǎn)品項(xiàng)目數(shù)量的不斷增加,這種手動(dòng)更新的方式會(huì)大大增加運(yùn)維人員的工作負(fù)擔(dān),工作效率低下,進(jìn)而會(huì)影響項(xiàng)目代碼信息更新部署的效率,并且在更新的工作中,運(yùn)維人員經(jīng)常容易出現(xiàn)失誤,從而也會(huì)降低項(xiàng)目代碼信息更新部署的準(zhǔn)確性。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供了一種項(xiàng)目代碼信息的更新部署方法及裝置,主要目的在于解決目前在項(xiàng)目代碼信息更新部署的過程中通過手動(dòng)更新的方式,會(huì)影響項(xiàng)目代碼信息更新部署的效率及準(zhǔn)確性的問題。
依據(jù)本發(fā)明一個(gè)方面,提供了一種項(xiàng)目代碼信息的更新部署方法,該方法包括:
獲取客戶端上傳的變更后的項(xiàng)目代碼信息以及與所述項(xiàng)目代碼信息對應(yīng)產(chǎn)品項(xiàng)目的項(xiàng)目標(biāo)識(shí);
根據(jù)所述項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對所述項(xiàng)目代碼信息進(jìn)行打包處理;
在將與所述項(xiàng)目標(biāo)識(shí)對應(yīng)的項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,根據(jù)打包處理后的項(xiàng)目代碼信息,對與所述項(xiàng)目服務(wù)進(jìn)程對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息進(jìn)行替換,并重新啟動(dòng)所述項(xiàng)目服務(wù)進(jìn)程。
依據(jù)本發(fā)明另一個(gè)方面,提供了一種項(xiàng)目代碼信息的更新部署裝置,該裝置包括:
獲取單元,用于獲取客戶端上傳的變更后的項(xiàng)目代碼信息以及與所述項(xiàng)目代碼信息對應(yīng)產(chǎn)品項(xiàng)目的項(xiàng)目標(biāo)識(shí);
處理單元,用于根據(jù)所述獲取單元獲取的項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對所述項(xiàng)目代碼信息進(jìn)行打包處理;
更新單元,用于在將與所述獲取單元獲取的項(xiàng)目標(biāo)識(shí)對應(yīng)的項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,根據(jù)所述處理單元打包處理后的項(xiàng)目代碼信息,對與所述項(xiàng)目服務(wù)進(jìn)程對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息進(jìn)行替換,并重新啟動(dòng)所述項(xiàng)目服務(wù)進(jìn)程。
依據(jù)本發(fā)明又一個(gè)方面,提供了一種存儲(chǔ)設(shè)備,其上存儲(chǔ)有計(jì)算機(jī)程序,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
獲取客戶端上傳的變更后的項(xiàng)目代碼信息以及與所述項(xiàng)目代碼信息對應(yīng)產(chǎn)品項(xiàng)目的項(xiàng)目標(biāo)識(shí);
根據(jù)所述項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對所述項(xiàng)目代碼信息進(jìn)行打包處理;
在將與所述項(xiàng)目標(biāo)識(shí)對應(yīng)的項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,根據(jù)打包處理后的項(xiàng)目代碼信息,對與所述項(xiàng)目服務(wù)進(jìn)程對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息進(jìn)行替換,并重新啟動(dòng)所述項(xiàng)目服務(wù)進(jìn)程。
依據(jù)本發(fā)明再一個(gè)方面,提供了一種項(xiàng)目代碼信息更新部署的實(shí)體裝置,包括存儲(chǔ)設(shè)備、處理器及存儲(chǔ)在存儲(chǔ)設(shè)備上并可在處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:
獲取客戶端上傳的變更后的項(xiàng)目代碼信息以及與所述項(xiàng)目代碼信息對應(yīng)產(chǎn)品項(xiàng)目的項(xiàng)目標(biāo)識(shí);
根據(jù)所述項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對所述項(xiàng)目代碼信息進(jìn)行打包處理;
在將與所述項(xiàng)目標(biāo)識(shí)對應(yīng)的項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,根據(jù)打包處理后的項(xiàng)目代碼信息,對與所述項(xiàng)目服務(wù)進(jìn)程對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息進(jìn)行替換,并重新啟動(dòng)所述項(xiàng)目服務(wù)進(jìn)程。
借由上述技術(shù)方案,本發(fā)明提供的一種項(xiàng)目代碼信息的更新部署方法及裝置,與目前在項(xiàng)目代碼信息更新部署的過程中通過手動(dòng)更新的方式相比,本發(fā)明根據(jù)對變更后的項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對該項(xiàng)目代碼信息進(jìn)行自動(dòng)打包處理,并自動(dòng)檢查相應(yīng)項(xiàng)目服務(wù)進(jìn)程,在該項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,自動(dòng)將相應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息替換為打包處理后的項(xiàng)目代碼信息,替換完畢后自動(dòng)重新啟動(dòng)該項(xiàng)目服務(wù)進(jìn)程,以便自動(dòng)完成項(xiàng)目代碼信息的更新部署過程,進(jìn)而可以實(shí)現(xiàn)一鍵式自動(dòng)化完成項(xiàng)目源代碼的更新打包、服務(wù)中斷、新代碼更替、服務(wù)重啟等一系列操作,快速進(jìn)行項(xiàng)目代碼更新部署的標(biāo)準(zhǔn)流程,減少了運(yùn)維人員的工作負(fù)擔(dān)及誤操作的可能,從而提高了項(xiàng)目代碼信息更新部署的效率和準(zhǔn)確性。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了本發(fā)明實(shí)施例提供的一種項(xiàng)目代碼信息的更新部署方法流程示意圖;
圖2示出了本發(fā)明實(shí)施例提供的另一種項(xiàng)目代碼信息的更新部署方法流程示意圖;
圖3示出了本發(fā)明實(shí)施例提供的一種項(xiàng)目代碼信息的更新部署裝置的結(jié)構(gòu)示意圖;
圖4示出了本發(fā)明實(shí)施例提供的另一種項(xiàng)目代碼信息的更新部署裝置的結(jié)構(gòu)示意圖;
圖5示出了本發(fā)明實(shí)施例提供的一種項(xiàng)目代碼信息的更新部署裝置的實(shí)體結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
本發(fā)明實(shí)施例提供了一種項(xiàng)目代碼信息的更新部署方法,可以提高項(xiàng)目代碼信息更新部署的效率和準(zhǔn)確性,如圖1所示,該方法包括:
101、獲取客戶端上傳的變更后的項(xiàng)目代碼信息以及與項(xiàng)目代碼信息對應(yīng)產(chǎn)品項(xiàng)目的項(xiàng)目標(biāo)識(shí)。
其中,項(xiàng)目代碼信息中可以包含完整的項(xiàng)目對象模型(projectobjectmodel,pom)文件、源代碼信息以及相應(yīng)的配置文件信息,該項(xiàng)目對象模型文件用于管理項(xiàng)目源代碼、配置文件、開發(fā)者的信息和角色、問題追蹤系統(tǒng)、組織信息、項(xiàng)目授權(quán)、項(xiàng)目的統(tǒng)一資源定位符(uniformresourcelocator,url)、項(xiàng)目的依賴關(guān)系等等。項(xiàng)目標(biāo)識(shí)可以為產(chǎn)品項(xiàng)目的項(xiàng)目名稱、身份標(biāo)識(shí)號(hào)碼(identity,id)等。
在本發(fā)明實(shí)施例中,可以由代碼開發(fā)人員針對某一特定的產(chǎn)品項(xiàng)目完成新的項(xiàng)目代碼變更,然后通過客戶端提交到項(xiàng)目服務(wù)器中,而對于本發(fā)明實(shí)施例的執(zhí)行主體可以為項(xiàng)目服務(wù)器,也可以為項(xiàng)目服務(wù)器中配置的用于項(xiàng)目代碼信息更新部署的裝置,在項(xiàng)目服務(wù)器接收到客戶端提交的新的項(xiàng)目代碼信息之后,可以由運(yùn)維人員觸發(fā)或者由系統(tǒng)默認(rèn)自動(dòng)觸發(fā)該新的項(xiàng)目代碼信息的更新部署自動(dòng)化流程,具體執(zhí)行步驟101至步驟103所述的過程,無需運(yùn)維人員依靠傳統(tǒng)的手動(dòng)更新方式手動(dòng)編程代碼更新部署的每一個(gè)處理流程,減少了運(yùn)維人員的工作負(fù)擔(dān)及誤操作的可能,進(jìn)而提高了項(xiàng)目代碼信息更新部署的效率和準(zhǔn)確性。
102、根據(jù)獲取的項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對項(xiàng)目代碼信息進(jìn)行打包處理。
例如,根據(jù)項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,將需要運(yùn)行的項(xiàng)目源代碼內(nèi)容進(jìn)行打包處理,并可以生成一個(gè)特定文件,該文件中包含所有需要運(yùn)行的項(xiàng)目源代碼。
103、在將與獲取的項(xiàng)目標(biāo)識(shí)對應(yīng)的項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,根據(jù)打包處理后的項(xiàng)目代碼信息,對與項(xiàng)目服務(wù)進(jìn)程對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息進(jìn)行替換,并重新啟動(dòng)項(xiàng)目服務(wù)進(jìn)程。
例如,可以檢測與獲取的項(xiàng)目標(biāo)識(shí)對應(yīng)的項(xiàng)目服務(wù)進(jìn)程的啟動(dòng)狀態(tài),如果該項(xiàng)目服務(wù)進(jìn)程已經(jīng)關(guān)閉,可以直接將與該項(xiàng)目服務(wù)進(jìn)程對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息替換為打包處理后的項(xiàng)目代碼信息,并啟動(dòng)該項(xiàng)目服務(wù)進(jìn)程;如果該項(xiàng)目服務(wù)進(jìn)程處于開啟狀態(tài),將該項(xiàng)目服務(wù)進(jìn)程結(jié)束,然后再將歷史代碼信息替換為打包處理后的項(xiàng)目代碼信息,并重新啟動(dòng)該項(xiàng)目服務(wù)進(jìn)程,以便完成新的項(xiàng)目代碼信息的更新部署。
需要說明的是,對于本發(fā)明實(shí)施例提供的項(xiàng)目代碼信息的更新部署方法,可以應(yīng)用在web、server產(chǎn)品項(xiàng)目的項(xiàng)目代碼信息更新部署的場景,還可以應(yīng)用在其他產(chǎn)品項(xiàng)目的項(xiàng)目代碼信息更新部署的場景,在此本發(fā)明實(shí)施例不做限定,進(jìn)而完成不斷的項(xiàng)目代碼更新、版本迭代過程。
本發(fā)明實(shí)施例提供的一種項(xiàng)目代碼信息的更新部署方法,與目前在項(xiàng)目代碼信息更新部署的過程中通過手動(dòng)更新的方式相比,本發(fā)明實(shí)施例根據(jù)對變更后的項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對該項(xiàng)目代碼信息進(jìn)行自動(dòng)打包處理,并自動(dòng)檢查相應(yīng)項(xiàng)目服務(wù)進(jìn)程,在該項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,自動(dòng)將相應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息替換為打包處理后的項(xiàng)目代碼信息,替換完畢后自動(dòng)重新啟動(dòng)該項(xiàng)目服務(wù)進(jìn)程,以便自動(dòng)完成項(xiàng)目代碼信息的更新部署過程,進(jìn)而可以實(shí)現(xiàn)一鍵式自動(dòng)化完成項(xiàng)目源代碼的更新打包、服務(wù)中斷、新代碼更替、服務(wù)重啟等一系列操作,快速進(jìn)行項(xiàng)目代碼更新部署的標(biāo)準(zhǔn)流程,減少了運(yùn)維人員的工作負(fù)擔(dān)及誤操作的可能,從而提高了項(xiàng)目代碼信息更新部署的效率和準(zhǔn)確性。
進(jìn)一步地,作為上述本發(fā)明實(shí)施例具體實(shí)施方式的細(xì)化和擴(kuò)展,提供了另一種項(xiàng)目代碼信息的更新部署方法,如圖2所示,該方法包括:
201、通過調(diào)用預(yù)定subversion服務(wù),將客戶端上傳到subversion版本控制路徑的變更后的項(xiàng)目代碼信息更新到預(yù)設(shè)文件存儲(chǔ)路徑中。
其中,預(yù)設(shè)文件存儲(chǔ)路徑可以根據(jù)實(shí)際需求預(yù)先進(jìn)行設(shè)定。
由代碼開發(fā)人員針對某一特定的產(chǎn)品項(xiàng)目完成新的項(xiàng)目代碼變更,然后通過客戶端選擇相應(yīng)的產(chǎn)品項(xiàng)目將變更后的項(xiàng)目代碼信息提交到項(xiàng)目服務(wù)器中部署的subversion版本控制路徑上,其中提交的項(xiàng)目代碼信息中包含完整的項(xiàng)目對象模型pom文件及配置文件信息等。
對于本發(fā)明實(shí)施例的執(zhí)行主體可以為項(xiàng)目服務(wù)器中配置的用于項(xiàng)目代碼信息自動(dòng)化更新部署的裝置,該裝置可以由技術(shù)人員預(yù)先進(jìn)行編寫配置,例如,可以基于linux操作系統(tǒng)bash腳本技術(shù)預(yù)先進(jìn)行編寫配置。在項(xiàng)目服務(wù)器側(cè),在接收到客戶端提交的新的項(xiàng)目代碼信息之后,可以由運(yùn)維人員觸發(fā)或者由系統(tǒng)默認(rèn)自動(dòng)觸發(fā)該裝置具體執(zhí)行步驟201至步驟207所述過程。
202、通過調(diào)用預(yù)定apachemaven服務(wù),檢索預(yù)設(shè)文件存儲(chǔ)路徑中項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件。
例如,首先通過調(diào)取項(xiàng)目服務(wù)器中的預(yù)定subversion服務(wù),將提交的新的項(xiàng)目代碼信息更新到指定的文件存儲(chǔ)路徑中,然后通過調(diào)取項(xiàng)目服務(wù)器中的預(yù)定apachemaven服務(wù),檢索該文件存儲(chǔ)路徑中項(xiàng)目文件夾下的項(xiàng)目對象模型文件。
203、根據(jù)檢索到的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對項(xiàng)目代碼信息中需要加載的jar包進(jìn)行打包處理。
例如,通過調(diào)取項(xiàng)目服務(wù)器中的預(yù)定apachemaven服務(wù),在檢索到項(xiàng)目對象模型文件之后,根據(jù)該文件中項(xiàng)目源代碼相關(guān)的配置信息,對項(xiàng)目代碼信息中需要加載的jar包打包到包內(nèi)。
204、將打包處理后的包生成預(yù)定war文件格式的文件。
其中,預(yù)定war文件格式的文件中包含需要運(yùn)行的源代碼信息。
例如,在將需要加載的jar包打包到包內(nèi)之后,統(tǒng)一生成一個(gè)以war文件格式結(jié)尾的文件,該文件包含了所有需要運(yùn)行的項(xiàng)目源代碼。
205、獲取項(xiàng)目代碼信息對應(yīng)產(chǎn)品項(xiàng)目的項(xiàng)目標(biāo)識(shí),并檢索與該項(xiàng)目標(biāo)識(shí)對應(yīng)的項(xiàng)目服務(wù)進(jìn)程以及相應(yīng)的項(xiàng)目代碼存儲(chǔ)路徑。
具體可以通過查詢映射關(guān)系表的方式,根據(jù)獲取到的產(chǎn)品項(xiàng)目的項(xiàng)目標(biāo)識(shí),在映射關(guān)系表中查詢相應(yīng)的項(xiàng)目服務(wù)進(jìn)程以及相應(yīng)的項(xiàng)目代碼存儲(chǔ)路徑。例如,查詢到與該項(xiàng)目名稱對應(yīng)的項(xiàng)目服務(wù)進(jìn)程為項(xiàng)目啟動(dòng)容器tomcat進(jìn)程,將與該tomcat進(jìn)程對應(yīng)tomcat容器指定的訪問路徑確定為項(xiàng)目代碼存儲(chǔ)路徑。
206、在將項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,將項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息備份存儲(chǔ)至預(yù)定備份存儲(chǔ)路徑中。
其中,預(yù)定備份存儲(chǔ)路徑可以根據(jù)實(shí)際需求預(yù)先進(jìn)行設(shè)定。
在檢索到與該項(xiàng)目標(biāo)識(shí)對應(yīng)的項(xiàng)目服務(wù)進(jìn)程之后,將該項(xiàng)目服務(wù)進(jìn)程關(guān)閉,對于本發(fā)明實(shí)施例,為了實(shí)現(xiàn)對歷史代碼信息的備份保存,便于后期的項(xiàng)目代碼分析,可以在項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,將項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息備份存儲(chǔ)至預(yù)定備份存儲(chǔ)路徑中。并且為了進(jìn)一步便于后期按照時(shí)間進(jìn)行分析以及節(jié)省存儲(chǔ)空間,可以采用按照時(shí)間戳格式進(jìn)行壓縮打包處理的方式,相應(yīng)的,步驟206具體可以包括:將與項(xiàng)目標(biāo)識(shí)對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息,按照時(shí)間戳格式進(jìn)行壓縮打包處理;然后將壓縮打包處理后的歷史代碼信息備份存儲(chǔ)至預(yù)定備份存儲(chǔ)路徑中。
例如,在關(guān)閉項(xiàng)目啟動(dòng)容器tomcat進(jìn)程后,將tomcat容器指定的訪問路徑上保存的歷史代碼按照標(biāo)準(zhǔn)時(shí)間戳格式進(jìn)行壓縮打包,并移動(dòng)到特定的備份存儲(chǔ)路徑下。
207、將項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息替換為打包處理后的項(xiàng)目代碼信息,并重新啟動(dòng)項(xiàng)目服務(wù)進(jìn)程。
例如,將tomcat容器指定的訪問路徑上保存的歷史代碼替換為打包處理后的新的項(xiàng)目代碼,并重新啟動(dòng)項(xiàng)目啟動(dòng)容器tomcat進(jìn)程,進(jìn)而完成項(xiàng)目代碼信息的更新部署操作。
本發(fā)明實(shí)施例提供的另一種項(xiàng)目代碼信息的更新部署方法,與目前在項(xiàng)目代碼信息更新部署的過程中通過手動(dòng)更新的方式相比,本發(fā)明實(shí)施例可以實(shí)現(xiàn)一鍵式自動(dòng)化完成項(xiàng)目源代碼的更新打包、服務(wù)中斷、歷史代碼數(shù)據(jù)備份、新代碼更替、服務(wù)重啟等一系列操作,快速進(jìn)行項(xiàng)目代碼更新部署的標(biāo)準(zhǔn)流程,減少了運(yùn)維人員的工作負(fù)擔(dān)及誤操作的可能,進(jìn)而提高了項(xiàng)目代碼信息更新部署的效率和準(zhǔn)確性,并且可以實(shí)現(xiàn)將歷史代碼數(shù)據(jù)備份,便于后期的項(xiàng)目代碼分析。
進(jìn)一步地,作為圖1和圖2所述方法的具體實(shí)現(xiàn),本發(fā)明實(shí)施例提供了一種項(xiàng)目代碼信息的更新部署裝置,如圖3所示,所述裝置包括:獲取單元31、處理單元32、更新單元33。
獲取單元31,可以用于獲取客戶端上傳的變更后的項(xiàng)目代碼信息以及與所述項(xiàng)目代碼信息對應(yīng)產(chǎn)品項(xiàng)目的項(xiàng)目標(biāo)識(shí);獲取單元31為本裝置中獲取提交的新項(xiàng)目代碼信息以及相應(yīng)產(chǎn)品項(xiàng)目標(biāo)識(shí)的主要功能模塊,在獲取得到這些信息后,觸發(fā)處理單元32和更新單元33進(jìn)行工作,對獲取得到的這些信息進(jìn)行處理。
處理單元32,可以用于根據(jù)所述獲取單元31獲取的項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對所述項(xiàng)目代碼信息進(jìn)行打包處理;處理單元32為本裝置中對項(xiàng)目代碼信息進(jìn)行打包處理的主要功能模塊。
更新單元33,可以用于在將與所述獲取單元31獲取的項(xiàng)目標(biāo)識(shí)對應(yīng)的項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,根據(jù)所述處理單元32打包處理后的項(xiàng)目代碼信息,對與所述項(xiàng)目服務(wù)進(jìn)程對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息進(jìn)行替換,并重新啟動(dòng)所述項(xiàng)目服務(wù)進(jìn)程,進(jìn)而完成新的項(xiàng)目代碼信息的更新部署。
在具體的應(yīng)用場景中,為了實(shí)現(xiàn)對歷史代碼信息的備份保存,便于后期的項(xiàng)目代碼分析,如圖4所示,所述更新單元33具體可以包括:備份模塊331、替換模塊332。
備份模塊331,可以用于將與所述項(xiàng)目標(biāo)識(shí)對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息備份存儲(chǔ)至預(yù)定備份存儲(chǔ)路徑中。
替換模塊332,可以用于將所述項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息替換為打包處理后的項(xiàng)目代碼信息。
在具體的應(yīng)用場景中,為了進(jìn)一步便于后期按照時(shí)間進(jìn)行分析以及節(jié)省存儲(chǔ)空間,可以采用按照時(shí)間戳格式進(jìn)行壓縮打包處理的方式,相應(yīng)的,所述備份模塊331,具體可以用于將與所述項(xiàng)目標(biāo)識(shí)對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息,按照時(shí)間戳格式進(jìn)行壓縮打包處理;將壓縮打包處理后的歷史代碼信息備份存儲(chǔ)至預(yù)定備份存儲(chǔ)路徑中。
在具體的應(yīng)用場景中,所述處理單元32,具體可以用于根據(jù)所述項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對所述項(xiàng)目代碼信息中需要加載的jar包進(jìn)行打包處理;將打包處理后的包生成預(yù)定war文件格式的文件,所述預(yù)定war文件格式的文件中包含需要運(yùn)行的源代碼信息。
相應(yīng)的,所述更新單元33,具體可以用于與所述項(xiàng)目標(biāo)識(shí)對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息替換為生成的所述預(yù)定war文件格式的文件。
在具體的應(yīng)用場景中,所述獲取單元31,具體可以用于通過調(diào)用預(yù)定subversion服務(wù),將客戶端上傳到subversion版本控制路徑的變更后的項(xiàng)目代碼信息更新到預(yù)設(shè)文件存儲(chǔ)路徑中。
相應(yīng)的,所述處理單元32,具體還可以用于通過調(diào)用預(yù)定apachemaven服務(wù),檢索所述預(yù)設(shè)文件存儲(chǔ)路徑中所述項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件;根據(jù)檢索到的所述項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對所述項(xiàng)目代碼信息進(jìn)行打包處理。
需要說明的是,本發(fā)明實(shí)施例提供的一種項(xiàng)目代碼信息的更新部署裝置所涉及各功能單元的其他相應(yīng)描述,可以參考圖1和圖2中的對應(yīng)描述,在此不再贅述。
基于上述如圖1和圖2所示方法,相應(yīng)的,本發(fā)明實(shí)施例還提供了一種存儲(chǔ)設(shè)備,其上存儲(chǔ)有計(jì)算機(jī)程序,該程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:獲取客戶端上傳的變更后的項(xiàng)目代碼信息以及與所述項(xiàng)目代碼信息對應(yīng)產(chǎn)品項(xiàng)目的項(xiàng)目標(biāo)識(shí);根據(jù)所述項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對所述項(xiàng)目代碼信息進(jìn)行打包處理;在將與所述項(xiàng)目標(biāo)識(shí)對應(yīng)的項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,根據(jù)打包處理后的項(xiàng)目代碼信息,對與所述項(xiàng)目服務(wù)進(jìn)程對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息進(jìn)行替換,并重新啟動(dòng)所述項(xiàng)目服務(wù)進(jìn)程。
基于上述如圖1和圖2所示方法和如圖3和圖4所示裝置的實(shí)施例,本發(fā)明實(shí)施例還提供了一種項(xiàng)目代碼信息的更新部署的實(shí)體裝置,如圖5所示,該裝置包括:處理器41、存儲(chǔ)設(shè)備42、及存儲(chǔ)在存儲(chǔ)設(shè)備42上并可在處理器41上運(yùn)行的計(jì)算機(jī)程序,所述處理器41執(zhí)行所述程序時(shí)實(shí)現(xiàn)以下步驟:獲取客戶端上傳的變更后的項(xiàng)目代碼信息以及與所述項(xiàng)目代碼信息對應(yīng)產(chǎn)品項(xiàng)目的項(xiàng)目標(biāo)識(shí);根據(jù)所述項(xiàng)目代碼信息包含的項(xiàng)目對象模型文件中項(xiàng)目源代碼相關(guān)的配置信息,對所述項(xiàng)目代碼信息進(jìn)行打包處理;在將與所述項(xiàng)目標(biāo)識(shí)對應(yīng)的項(xiàng)目服務(wù)進(jìn)程關(guān)閉后,根據(jù)打包處理后的項(xiàng)目代碼信息,對與所述項(xiàng)目服務(wù)進(jìn)程對應(yīng)項(xiàng)目代碼存儲(chǔ)路徑上保存的歷史代碼信息進(jìn)行替換,并重新啟動(dòng)所述項(xiàng)目服務(wù)進(jìn)程,該裝置還包括:總線43,被配置為耦接處理器41及存儲(chǔ)設(shè)備42。
通過應(yīng)用本發(fā)明的技術(shù)方案,與目前在項(xiàng)目代碼信息更新部署的過程中通過手動(dòng)更新的方式相比,可以實(shí)現(xiàn)一鍵式自動(dòng)化完成項(xiàng)目源代碼的更新打包、服務(wù)中斷、歷史代碼數(shù)據(jù)備份、新代碼更替、服務(wù)重啟等一系列操作,快速進(jìn)行項(xiàng)目代碼更新部署的標(biāo)準(zhǔn)流程,減少了運(yùn)維人員的工作負(fù)擔(dān)及誤操作的可能,進(jìn)而提高了項(xiàng)目代碼信息更新部署的效率和準(zhǔn)確性,并且可以實(shí)現(xiàn)將歷史代碼數(shù)據(jù)備份,便于后期的項(xiàng)目代碼分析。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可以通過硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是cd-rom,u盤,移動(dòng)硬盤等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個(gè)實(shí)施場景所述的方法。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施場景的示意圖,附圖中的模塊或流程并不一定是實(shí)施本申請所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施場景中的裝置中的模塊可以按照實(shí)施場景描述進(jìn)行分布于實(shí)施場景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施場景的一個(gè)或多個(gè)裝置中。上述實(shí)施場景的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
上述本申請序號(hào)僅僅為了描述,不代表實(shí)施場景的優(yōu)劣。
以上公開的僅為本申請的幾個(gè)具體實(shí)施場景,但是,本申請并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本申請的保護(hù)范圍。