本發(fā)明涉及軟件開發(fā)技術(shù)領(lǐng)域,具體而言,涉及一種開發(fā)流程優(yōu)化方法、裝置及存儲(chǔ)介質(zhì)。
背景技術(shù):
隨著ios或android組件化的流行,越來越多的團(tuán)隊(duì)開始使用組件化的管理工具如cocoapods。然而,基于cocoapods的組件化開發(fā)方案有一個(gè)導(dǎo)致開發(fā)效率低下的問題,那就是大工程在被拆分成若干個(gè)組件之后,跨組件之間的版本管理很麻煩。如a組件依賴了b組件,此時(shí)如果b組件滿足不了a組件的需求,那a就需要通知b組件的維護(hù)人員對(duì)b組件進(jìn)行更新,然后發(fā)布b組件的新版本,再將新的版本號(hào)告訴a組件開發(fā)人員,a組件開發(fā)人員再拉取b組件的新版本。可見環(huán)節(jié)很多,若b組件的維護(hù)人員有優(yōu)先級(jí)更高的任務(wù)需要處理,那么a組件的所有開發(fā)人員的工作無法進(jìn)行下去,要等待b組件維護(hù)人員直到其更新b組件。同時(shí),如果c組件也依賴b組件,在b組件維護(hù)人員發(fā)了新版本之后c組件也提了b組件更新需求,那么此時(shí)b組件又要更新并發(fā)新版本,可見重復(fù)性的發(fā)版頻率很高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種開發(fā)流程優(yōu)化方法、裝置及存儲(chǔ)介質(zhì),以改善上述問題。為了實(shí)現(xiàn)上述目的,本發(fā)明采取的技術(shù)方案如下:
第一方面,本發(fā)明實(shí)施例提供了一種開發(fā)流程優(yōu)化方法,所述方法包括多個(gè)第一組件各自所在的第一終端基于對(duì)各自獲取到的與每個(gè)所述第一組件均相關(guān)聯(lián)的第二組件的修改后的源代碼,對(duì)所述第一終端各自對(duì)應(yīng)的第一組件的源代碼進(jìn)行更新;檢測(cè)到更新完成后,所述多個(gè)第一組件各自所在的第一終端分別向所述第二組件所在的第二終端發(fā)起源代碼合并請(qǐng)求,以便所述第二終端接收所述多個(gè)第一組件各自所在的第一終端發(fā)起的源代碼合并請(qǐng)求之后,發(fā)布所述第二組件的版本,所述第二組件的版本包括所有所述第二組件的修改后的源代碼。
第二方面,本發(fā)明實(shí)施例提供了一種開發(fā)流程優(yōu)化裝置,所述裝置包括更新單元和發(fā)起請(qǐng)求單元。更新單元,用于多個(gè)第一組件各自所在的第一終端基于對(duì)各自獲取到的與每個(gè)所述第一組件均相關(guān)聯(lián)的第二組件的修改后的源代碼,對(duì)所述第一終端各自對(duì)應(yīng)的第一組件的源代碼進(jìn)行更新。發(fā)起請(qǐng)求單元,用于檢測(cè)到更新完成后,所述多個(gè)第一組件各自所在的第一終端分別向所述第二組件所在的第二終端發(fā)起源代碼合并請(qǐng)求,以便所述第二終端接收所述多個(gè)第一組件各自所在的第一終端發(fā)起的源代碼合并請(qǐng)求之后,發(fā)布所述第二組件的版本,所述第二組件的版本包括所有所述第二組件的修改后的源代碼。
第三方面,本發(fā)明實(shí)施例提供了一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有具有處理器可執(zhí)行的非易失的程序代碼,所述程序代碼被配置成使所述處理器執(zhí)行上述方法。
本發(fā)明實(shí)施例提供了一種開發(fā)流程優(yōu)化方法、裝置及存儲(chǔ)介質(zhì),多個(gè)第一組件各自所在的第一終端基于對(duì)各自獲取到的與每個(gè)所述第一組件均相關(guān)聯(lián)的第二組件的修改后的源代碼,對(duì)所述第一終端各自對(duì)應(yīng)的第一組件的源代碼進(jìn)行更新;再檢測(cè)到更新完成后,所述多個(gè)第一組件各自所在的第一終端分別向所述第二組件所在的第二終端發(fā)起源代碼合并請(qǐng)求,以便所述第二終端接收所述多個(gè)第一組件各自所在的第一終端發(fā)起的源代碼合并請(qǐng)求之后,發(fā)布所述第二組件的版本,所述第二組件的版本包括所有所述第二組件的修改后的源代碼。以此實(shí)現(xiàn)進(jìn)行一次發(fā)布第二組件的版本,不必重復(fù)發(fā)布版本,優(yōu)化整個(gè)開發(fā)流程。
本發(fā)明的其他特征和優(yōu)點(diǎn)將在隨后的說明書闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明實(shí)施例了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為本發(fā)明實(shí)施例的應(yīng)用環(huán)境;
圖2為本發(fā)明實(shí)施例提供的第一終端的結(jié)構(gòu)框圖;
圖3為本發(fā)明實(shí)施例提供的開發(fā)流程優(yōu)化方法的流程圖;
圖4為本發(fā)明實(shí)施例提供的開發(fā)流程優(yōu)化方法的子流程圖;
圖5為本發(fā)明實(shí)施例提供的開發(fā)流程優(yōu)化裝置的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。同時(shí),在本發(fā)明的描述中,術(shù)語“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對(duì)重要性。
本發(fā)明下述各實(shí)施例如無特別說明均可應(yīng)用于如圖1所示的環(huán)境中,如圖1所示,多個(gè)第一終端100(圖1中僅示出一個(gè))通過網(wǎng)絡(luò)200與第二終端210連接。所述網(wǎng)絡(luò)200可以是有線或無線網(wǎng)絡(luò)。本發(fā)明實(shí)施例中,第一終端100和第二終端210能夠通過通信網(wǎng)絡(luò)直接連接。第一終端100、第二終端210可以在wi-fi(無線保真)網(wǎng)絡(luò)、2g/3g/4g網(wǎng)絡(luò)或局域網(wǎng)中建立通信連接。
請(qǐng)參閱圖2,示出了一種可應(yīng)用于本發(fā)明實(shí)施例中的第一終端100的結(jié)構(gòu)框圖。第一終端100可以包括存儲(chǔ)器102、存儲(chǔ)控制器104、一個(gè)或多個(gè)(圖2中僅示出一個(gè))處理器106、外設(shè)接口108、輸入輸出模塊110、音頻模塊112、顯示模塊114、射頻模塊116和開發(fā)流程優(yōu)化裝置。
存儲(chǔ)器102、存儲(chǔ)控制器104、處理器106、外設(shè)接口108、輸入輸出模塊110、音頻模塊112、顯示模塊114、射頻模塊116各元件之間直接或間接地電連接,以實(shí)現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件之間可以通過一條或多條通訊總線或信號(hào)總線實(shí)現(xiàn)電連接。開發(fā)流程優(yōu)化方法分別包括至少一個(gè)可以以軟件或固件(firmware)的形式存儲(chǔ)于存儲(chǔ)器102中的軟件功能模塊,例如所述開發(fā)流程優(yōu)化裝置包括的軟件功能模塊或計(jì)算機(jī)程序。
存儲(chǔ)器102可以存儲(chǔ)各種軟件程序以及模塊,如本申請(qǐng)實(shí)施例提供的開發(fā)流程優(yōu)化方法及裝置對(duì)應(yīng)的程序指令/模塊。處理器106通過運(yùn)行存儲(chǔ)在存儲(chǔ)器102中的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)本申請(qǐng)實(shí)施例中的開發(fā)流程優(yōu)化方法。
存儲(chǔ)器102可以包括但不限于隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram),只讀存儲(chǔ)器(readonlymemory,rom),可編程只讀存儲(chǔ)器(programmableread-onlymemory,prom),可擦除只讀存儲(chǔ)器(erasableprogrammableread-onlymemory,eprom),電可擦除只讀存儲(chǔ)器(electricerasableprogrammableread-onlymemory,eeprom)等。
處理器106可以是一種集成電路芯片,具有信號(hào)處理能力。上述處理器可以是通用處理器,包括中央處理器(centralprocessingunit,簡(jiǎn)稱cpu)、網(wǎng)絡(luò)處理器(networkprocessor,簡(jiǎn)稱np)等;還可以是數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。其可以實(shí)現(xiàn)或者執(zhí)行本申請(qǐng)實(shí)施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
所述外設(shè)接口108將各種輸入/輸入裝置耦合至處理器106以及存儲(chǔ)器102。在一些實(shí)施例中,外設(shè)接口108、處理器106以及存儲(chǔ)控制器104可以在單個(gè)芯片中實(shí)現(xiàn)。在其他一些實(shí)例中,他們可以分別由獨(dú)立的芯片實(shí)現(xiàn)。
輸入輸出模塊110用于提供給用戶輸入數(shù)據(jù)實(shí)現(xiàn)用戶與第一終端100的交互。所述輸入輸出模塊110可以是,但不限于,鼠標(biāo)和鍵盤等。
音頻模塊112向用戶提供音頻接口,其可包括一個(gè)或多個(gè)麥克風(fēng)、一個(gè)或者多個(gè)揚(yáng)聲器以及音頻電路。
顯示模塊114在第一終端100與用戶之間提供一個(gè)交互界面(例如用戶操作界面)或用于顯示圖像數(shù)據(jù)給用戶參考。在本實(shí)施例中,所述顯示模塊114可以是液晶顯示器或觸控顯示器。若為觸控顯示器,其可為支持單點(diǎn)和多點(diǎn)觸控操作的電容式觸控屏或電阻式觸控屏等。支持單點(diǎn)和多點(diǎn)觸控操作是指觸控顯示器能感應(yīng)到來自該觸控顯示器上一個(gè)或多個(gè)位置處同時(shí)產(chǎn)生的觸控操作,并將該感應(yīng)到的觸控操作交由處理器106進(jìn)行計(jì)算和處理。
射頻模塊116用于接收以及發(fā)送電磁波,實(shí)現(xiàn)電磁波與電信號(hào)的相互轉(zhuǎn)換,從而與通信網(wǎng)絡(luò)或者其他設(shè)備進(jìn)行通信。
可以理解,圖2所示的結(jié)構(gòu)僅為示意,第一終端100還可包括比圖2中所示更多或者更少的組件,或者具有與圖2所示不同的配置。圖2中所示的各組件可以采用硬件、軟件或其組合實(shí)現(xiàn)。第二終端210可以與第一終端100包括相同的結(jié)構(gòu)。
于本發(fā)明實(shí)施例中,該第一終端100及第二終端210均可以為pc(personalcomputer)電腦、平板電腦、手機(jī)、筆記本電腦、智能電視、機(jī)頂盒、車載終端等終端設(shè)備。第一終端100中可以安裝有客戶端,該客戶端可以是瀏覽器也可以是第三方應(yīng)用軟件。
請(qǐng)參閱圖2,本發(fā)明實(shí)施例提供了一種開發(fā)流程優(yōu)化方法,所述方法包括:步驟s300和步驟s310。
步驟s300:多個(gè)第一組件各自所在的第一終端基于對(duì)各自獲取到的與每個(gè)所述第一組件均相關(guān)聯(lián)的第二組件的修改后的源代碼,對(duì)所述第一終端各自對(duì)應(yīng)的第一組件的源代碼進(jìn)行更新。
在本實(shí)施例中,針對(duì)基于cocoapods的組件化開發(fā)流程。cocoapods為一個(gè)開源的依賴包管理工具,目前支持ios和android系統(tǒng)。組件化指基于cocoapods將一個(gè)大工程拆分成若干小工程分開進(jìn)行管理的開發(fā)方案。組件指基于cocoapods將一個(gè)大工程拆分成的若干個(gè)小工程。
在新建的主工程中,包括多個(gè)第一組件和與每個(gè)第一組件均相關(guān)聯(lián)的第二組件。所述多個(gè)第一組件可以為至少兩個(gè)第一組件。每個(gè)第一組件所在的第一終端預(yù)先獲取與第一組件相關(guān)聯(lián)的第二組件的源代碼,并針對(duì)每個(gè)第一組件自己的需求對(duì)第二組件的源代碼進(jìn)行修改,將修改后的第二組件的源代碼存儲(chǔ)在主工程代碼托管服務(wù)器上。同理,多個(gè)第一組件重復(fù)類似的操作,根據(jù)各自的需求,將修改后的第二組件的源代碼預(yù)先存儲(chǔ)在主工程代碼服務(wù)器上。根據(jù)任務(wù)需求,多個(gè)第一組件各自所在的第一終端再?gòu)闹鞴こ檀a服務(wù)器上獲取第二組件的修改后的源代碼,對(duì)所述第一終端各自對(duì)應(yīng)的第一組件的源代碼進(jìn)行更新。
步驟s310:檢測(cè)到更新完成后,所述多個(gè)第一組件各自所在的第一終端分別向所述第二組件所在的第二終端發(fā)起源代碼合并請(qǐng)求,以便所述第二終端接收所述多個(gè)第一組件各自所在的第一終端發(fā)起的源代碼合并請(qǐng)求之后,發(fā)布所述第二組件的版本,所述第二組件的版本包括所有所述第二組件的修改后的源代碼。
例如,在整體項(xiàng)目在集成測(cè)試階段,所有第一組件的更新都已完成,所述多個(gè)第一組件各自所在的第一終端分別向所述第二組件所在的第二終端發(fā)起源代碼合并請(qǐng)求;所述第二終端接收所述多個(gè)第一組件各自所在的第一終端發(fā)起的源代碼合并請(qǐng)求之后,發(fā)布所述第二組件的版本,所述第二組件的版本包括所有所述第二組件的修改后的源代碼。第二組件的第二終端整合所有第一終端發(fā)起的合并請(qǐng)求,合并所有所述第二組件修改后的源代碼,進(jìn)行一次發(fā)布版本,以此避免頻繁發(fā)布版本。
請(qǐng)請(qǐng)參閱圖4,為了避免跨組件開發(fā)人員之間的不必要的等待,實(shí)現(xiàn)第一組件所在的第一終端修改第二組件的源代碼,在步驟s300之前,所述方法還包括步驟s400、步驟s410、步驟s420和步驟s430。
步驟s400:所述第一組件所在的第一終端獲取與該第一組件相關(guān)聯(lián)的第二組件的源代碼,對(duì)所述第二組件配置開發(fā)環(huán)境,以獲得所述第一組件對(duì)應(yīng)工程中的第一目錄,所述第一目錄包括所述第二組件的源代碼。
基于步驟s400,進(jìn)一步地,所述第一組件所在的第一終端獲取與該第一組件相關(guān)聯(lián)的第二組件的源代碼;設(shè)置獲取到的與第一組件相關(guān)聯(lián)的第二組件的源代碼的本地路徑;創(chuàng)建第一組件的新分支目錄;修改所述第一組件對(duì)應(yīng)工程中的配置文件中第二組件的配置。其中,修改第二組件的配置,具體地,在所述第一組件對(duì)應(yīng)工程中的配置文件中,增加路徑參數(shù),所述路徑參數(shù)指向所述第二組件的源代碼的本地路徑,以便所述第一目錄中所述第二組件的源代碼與所述本地路徑中的第二組件的源代碼作映射。
例如,開發(fā)人員通過所述第一組件a所在的第一終端將第二組件b的源代碼克隆到本地,本地路徑為a_b_path;運(yùn)行g(shù)itcheckout–b命令,以創(chuàng)建新新分支feature/brancha;修改所述第一組件對(duì)應(yīng)工程中的配置文件即podfile中第二組件b的配置,增加:path參數(shù),指向第二組件b源代碼的本地路徑a_b_path;運(yùn)行podinstall命令,獲得developmentpods目錄。
將podfile中第二組件b改為指向本地路徑的方式引用之后運(yùn)行podinstall命令會(huì)在工程中增加一個(gè)第一目錄即developmentpods目錄,此目錄下會(huì)對(duì)第二組件b在本地路徑a_b_path里的代碼作映射,對(duì)此目錄下第二組件b的修改實(shí)際上就是對(duì)a_b_path路徑下的第二組件b進(jìn)行修改。實(shí)現(xiàn)在主工程中直接修改第二組件b的源代碼,修改會(huì)被保存在a_b_path路徑下的第二組件b的工程中。而如果不修改podfile指向本地路徑,而直接修改pods目錄下(cocoapods會(huì)將所有需要的依賴包放在pods目錄下)的第二組件b的代碼,在運(yùn)行podinstall命令之后會(huì)被撤銷,將無法進(jìn)行后面的發(fā)起合并請(qǐng)求的步驟。
步驟s410:對(duì)所述第一目錄下的第二組件的源代碼進(jìn)行修改,獲得所述第二組件的修改后的源代碼。
例如,開發(fā)人員通過所述第一組件a所在的第一終端對(duì)第一組件a工程中developmentpods目錄下的第二組件b的源代碼進(jìn)行修改更新,獲得所述第二組件的修改后的源代碼。
步驟s420:將所述第二組件的修改后的源代碼發(fā)送給代碼托管服務(wù)器。
在本實(shí)施例中,所述代碼托管服務(wù)器可以為pod代碼托管服務(wù)器,即pod對(duì)應(yīng)的git服務(wù)器。開發(fā)人員對(duì)修改第二組件b的源代碼結(jié)束之后,提交所述第二組件b的修改后的源代碼。例如,開發(fā)人員切換到a_b_path目錄運(yùn)行g(shù)itadd.&&gitcommit–a–m“update”&&gitpushoriginfeature/brancha命令提交變更并推送到pod代碼托管服務(wù)器。實(shí)現(xiàn)了由第一組件a的開發(fā)人員直接按自己的需要對(duì)第二組件b進(jìn)行修改并進(jìn)行下一步工作,不用等待第二組件b的維護(hù)人員來進(jìn)行修改并發(fā)布新版本才能進(jìn)行下一步工作,避免了不必要的等待。
步驟s430:修改所述第一組件對(duì)應(yīng)工程中的配置文件,將主工程源代碼發(fā)送給主工程代碼托管服務(wù)器,所述主工程源代碼包括所述第一組件的源代碼和所述第二組件的修改后的源代碼。
例如,開發(fā)人員通過所述第一組件a所在的第一終端再次修改podfile中第二組件b的配置,增加:git參數(shù),指向pod代碼托管git服務(wù)器地址,增加:branch參數(shù),指定為feature/brancha;運(yùn)行podinstall,此時(shí)運(yùn)行podinstall命令會(huì)刪除developmentpods目錄下的第二組件引用,從git服務(wù)器上拉取最新的第二組件b的代碼。由于此步驟之前的主工程中的第二組件b實(shí)際上是本地a_b_path路徑下的代碼,如果直接將此時(shí)的主工程代碼推送到代碼托管服務(wù)器會(huì)導(dǎo)致其他開發(fā)人員拉取代碼之后找不到a_b_path路徑下的第二組件b而報(bào)錯(cuò)。實(shí)現(xiàn)將主工程中對(duì)第二組件b修改后的源代碼代碼的引用由本地引用的方式改為從服務(wù)器拉取的方式,避免其他開發(fā)人員拉取主工程代碼之后找不到第二組件b的相關(guān)代碼。進(jìn)而提交變更,將主工程代碼提交到主工程代碼托管服務(wù)器,所述主工程源代碼包括所述第一組件的源代碼和所述第二組件的修改后的源代碼。
進(jìn)而,第一組件a的其他開發(fā)人員從主工程代碼托管服務(wù)器上拉取最新代碼進(jìn)行后續(xù)的開發(fā)。在版本穩(wěn)定之后,主工程做完集成測(cè)試之后,第一組件a所在的第一終端發(fā)起feature/brancha向master分支的合并請(qǐng)求,第二組件b在的第二終端接受所有合并請(qǐng)求之后,進(jìn)行一次版本發(fā)布操作。整個(gè)版本迭代過程中,進(jìn)行一次第二組件b的版本發(fā)布操作,避免十分頻繁的版本發(fā)布操作。
需要說明的是,以上列舉了一個(gè)第一組件的第一終端來修改第二組件的源代碼的過程方法,其他第一組件的第一終端可以執(zhí)行類似的操作,按照各自的需求,來修改第二組件的源代碼,為了描述簡(jiǎn)潔,這里不再贅述。
此外,本發(fā)明實(shí)施例中提供的開發(fā)流程優(yōu)化方法可以但不限于應(yīng)用于ios或android版本的各個(gè)app的開發(fā)中。
本發(fā)明實(shí)施例提供了一種開發(fā)流程優(yōu)化方法,多個(gè)第一組件各自所在的第一終端基于對(duì)各自獲取到的與每個(gè)所述第一組件均相關(guān)聯(lián)的第二組件的修改后的源代碼,對(duì)所述第一終端各自對(duì)應(yīng)的第一組件的源代碼進(jìn)行更新;再檢測(cè)到更新完成后,所述多個(gè)第一組件各自所在的第一終端分別向所述第二組件所在的第二終端發(fā)起源代碼合并請(qǐng)求,以便所述第二終端接收所述多個(gè)第一組件各自所在的第一終端發(fā)起的源代碼合并請(qǐng)求之后,發(fā)布所述第二組件的版本,所述第二組件的版本包括所有所述第二組件的修改后的源代碼。以此實(shí)現(xiàn)進(jìn)行一次發(fā)布第二組件的版本,不必重復(fù)發(fā)布版本,優(yōu)化整個(gè)開發(fā)流程。
請(qǐng)參閱圖5,本發(fā)明實(shí)施例提供了一種開發(fā)流程優(yōu)化裝置500,所述裝置500可以包括目錄獲得單元510、修改單元520、發(fā)送單元530、更新單元540和發(fā)起請(qǐng)求單元550。
目錄獲得單元510,用于所述第一組件所在的第一終端獲取與該第一組件相關(guān)聯(lián)的第二組件的源代碼,對(duì)所述第二組件配置開發(fā)環(huán)境,以獲得所述第一組件對(duì)應(yīng)工程中的第一目錄,所述第一目錄包括所述第二組件的源代碼。
作為一種實(shí)施方式,目錄獲取單元510可以包括設(shè)置子單元511、創(chuàng)建子單元512、文件修改子單元513。
設(shè)置子單元511,用于設(shè)置獲取到的與第一組件相關(guān)聯(lián)的第二組件的源代碼的本地路徑。
創(chuàng)建子單元512,用于創(chuàng)建第一組件的新分支目錄。
文件修改子單元513,用于修改所述第一組件對(duì)應(yīng)工程中的配置文件中第二組件的配置。
所述文件修改子單元513可以包括增加子單元513a。
增加子單元513a,用于在所述第一組件對(duì)應(yīng)工程中的配置文件中,增加路徑參數(shù),所述路徑參數(shù)指向所述第二組件的源代碼的本地路徑,以便所述第一目錄中所述第二組件的源代碼與所述本地路徑中的第二組件的源代碼作映射。
修改單元520,用于對(duì)所述第一目錄下的第二組件的源代碼進(jìn)行修改,獲得所述第二組件的修改后的源代碼。
發(fā)送單元530,用于修改所述第一組件對(duì)應(yīng)工程中的配置文件,將主工程源代碼發(fā)送給主工程代碼托管服務(wù)器,所述主工程源代碼包括所述第一組件的源代碼和所述第二組件的修改后的源代碼。發(fā)送單元530,還可以用于將所述第二組件的修改后的源代碼發(fā)送給代碼托管服務(wù)器。
更新單元540,用于多個(gè)第一組件各自所在的第一終端基于對(duì)各自獲取到的與每個(gè)所述第一組件均相關(guān)聯(lián)的第二組件的修改后的源代碼,對(duì)所述第一終端各自對(duì)應(yīng)的第一組件的源代碼進(jìn)行更新。
發(fā)起請(qǐng)求單元550,用于檢測(cè)到更新完成后,所述多個(gè)第一組件各自所在的第一終端分別向所述第二組件所在的第二終端發(fā)起源代碼合并請(qǐng)求,以便所述第二終端接收所述多個(gè)第一組件各自所在的第一終端發(fā)起的源代碼合并請(qǐng)求之后,發(fā)布所述第二組件的版本,所述第二組件的版本包括所有所述第二組件的修改后的源代碼。
以上各單元可以是由軟件代碼實(shí)現(xiàn),此時(shí),上述的各單元可存儲(chǔ)于存儲(chǔ)器102內(nèi)。以上各單元同樣可以由硬件例如集成電路芯片實(shí)現(xiàn)。
本發(fā)明實(shí)施例提供的開發(fā)流程優(yōu)化裝置500,其實(shí)現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實(shí)施例相同,為簡(jiǎn)要描述,裝置實(shí)施例部分未提及之處,可參考前述方法實(shí)施例中相應(yīng)內(nèi)容,在此不再贅述。
本發(fā)明實(shí)施例提供了一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有具有處理器可執(zhí)行的非易失的程序代碼,所述程序代碼被配置成使所述處理器執(zhí)行前述方法實(shí)施例中所述的方法,可參考前述方法實(shí)施例中相應(yīng)內(nèi)容,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實(shí)現(xiàn)。以上所描述的裝置實(shí)施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的裝置、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一起形成一個(gè)獨(dú)立的部分,也可以是各個(gè)模塊單獨(dú)存在,也可以兩個(gè)或兩個(gè)以上模塊集成形成一個(gè)獨(dú)立的部分。
所述功能如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),第二終端,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對(duì)其進(jìn)行進(jìn)一步定義和解釋。
以上所述,僅為本發(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)。
需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。