本發明涉及計算機技術領域,尤其涉及一種編譯方法及裝置。
背景技術:
云編譯客戶端通過分析代碼配置文件提取數據在網頁上顯示,同時供使用者修改,修改完后可以生成新的代碼配置文件。傳統的編譯方法是,當發起編譯時,將代碼配置文件傳遞到代碼中即為代碼編譯文件,可直接供代碼編譯使用。
對于不同的方案供應商,不同的平臺,代碼編譯文件的格式各不相同(如,C、H、SQL等格式)。傳統的直接解析代碼編譯文件的方法極大的限制了適配,通用性差。
技術實現要素:
基于此,有必要提供一種通用性強的編譯方法及裝置。
一種編譯方法,包括:
獲取發起對統一代碼配置文件進行自動編譯的發起信息,所述統一代碼配置文件通過統一的數據格式采用統一關鍵字描述數據配置信息;不少于兩種文件格式的代碼配置文件的語義相同的關鍵字均對應同一組所述統一關鍵字;所述代碼配置文件采用與所述文件格式對應的數據格式的關鍵字描述數據配置信息;
根據所述發起信息提取待編譯的待譯統一代碼配置文件;
根據配置譯碼映射表將所述待譯統一代碼配置文件轉換為代碼編譯文件;所述配置譯碼映射表包括統一關鍵字與代碼編譯文件的關鍵字的映射關系;
對所述代碼編譯文件及與所述待譯統一代碼配置文件屬于同一項目的項目代碼文件進行編譯。
一種編譯裝置,包括:
發起信息獲取模塊,用于獲取發起對統一代碼配置文件進行自動編譯的發起信息,所述統一代碼配置文件通過統一的數據格式采用統一關鍵字描述數據配置信息;不少于兩種文件格式的代碼配置文件的語義相同的關鍵字均對應同一組所述統一關鍵字;所述代碼配置文件采用與所述文件格式對應的數據格式的關鍵字描述數據配置信息;
待譯文件提取模塊,用于根據所述發起信息提取待編譯的待譯統一代碼配置文件;
待譯文件轉換模塊,用于根據配置譯碼映射表將所述待譯統一代碼配置文件轉換為代碼編譯文件;所述配置譯碼映射表包括統一關鍵字與代碼編譯文件的關鍵字的映射關系;項目文件編譯模塊,用于對所述代碼編譯文件及與所述待譯統一代碼配置文件屬于同一項目的項目代碼文件進行編譯。
上述編譯方法及裝置,獲取發起對統一代碼配置文件進行自動編譯的發起信息,所述統一代碼配置文件通過統一的數據格式采用統一關鍵字描述數據配置信息;不少于兩種文件格式的代碼配置文件的語義相同的關鍵字均對應同一組所述統一關鍵字;所述代碼配置文件采用與所述文件格式對應的數據格式的關鍵字描述數據配置信息;根據所述發起信息提取待編譯的待譯統一代碼配置文件;根據配置譯碼映射表將所述待譯統一代碼配置文件轉換為代碼編譯文件;所述配置譯碼映射表包括所述統一關鍵字與代碼編譯文件的關鍵字的映射關系;對所述代碼編譯文件及與所述待譯統一代碼配置文件屬于同一項目的項目代碼文件進行編譯。由于該編譯方法中的統一配置代碼文件通過統一的數據格式采用統一關鍵字描述數據配置信息,而不是采用直接通過代碼編譯文件的文件格式對應的數據格式(也即代碼配置文件的文件格式對應的數據格式)的關鍵字來描述數據配置信息,因此,其通用性高,可靈活適配不同的方案供應商或平臺。
附圖說明
圖1為一實施例的編譯方法的流程圖;
圖2為另一實施例的編譯方法的流程圖;
圖3為一實施例的編譯方法在客戶端運行時的一個截圖;
圖4為一實施例的編譯裝置的結構圖;
圖5為另一實施例的編譯裝置的結構圖。
具體實施方式
為了便于理解本發明,下面將參照相關附圖對本發明進行更全面的描述。附圖中給出了本發明的較佳的實施例。但是,本發明可以以許多不同的形式來實現,并不限于本文所描述的實施例。相反地,提供這些實施例的目的是使對本發明的公開內容的理解更加透徹全面。
除非另有定義,本文所使用的所有的技術和科學術語與屬于本發明的技術領域的技術人員通常理解的含義相同。本文中在本發明的說明書中所使用的術語只是為了描述具體的實施例的目的,不是旨在于限制本發明。本文所使用的術語“或/和”包括一個或多個相關的所列項目的任意的和所有的組合。
如圖1所示,為本發明一實施例的編譯方法,該方法運行在編譯服務器上。與編譯服務器具有數據關聯的有云編譯平臺及客戶端。其中,云編譯平臺上存儲有項目代碼文件以及對項目代碼文件進行編譯后得到并發布的可執行程序;客戶端作為客戶與云編譯平臺上存儲的可執行程序的交互接口,向云編譯平臺發起訪問請求,并接收云編譯平臺反饋的信息;編譯服務器對項目代碼文件進行編譯并將編譯得到的可執行文件發布到云編譯平臺。
本發明一實施例的編譯方法,包括:
S120:獲取發起對統一代碼配置文件進行自動編譯的發起信息。所述統一代碼配置文件通過統一的數據格式采用統一關鍵字描述數據配置信息;不少于兩種文件格式的代碼配置文件的語義相同的關鍵字均對應同一組所述統一關鍵字;所述代碼配置文件采用與所述文件格式對應的數據格式的關鍵字描述數據配置信息。。
客戶端提交請求時,可以發送一個發起對統一代碼配置文件進行自動編譯的發起命令至云編譯平臺。云編譯平臺根據該發起命令,發送發起信息至編譯服務器以對統一代碼配置文件進行自動編譯。編譯服務器獲取該發起信息。
S160:根據所述發起信息提取待編譯的待譯統一代碼配置文件。
發起信息包括待編譯的待譯統一代碼配置文件的文件標識。根據發起信息中的文件標識提取待編譯的待譯統一代碼配置文件。待譯統一代碼配置文件即為需要編譯的統一代碼配置文件。
具體地,根據發起信息中的文件標識及待譯統一代碼配置文件的存儲地址提取待編譯的統一代碼配置文件。在該具體實施例中,發起信息還包括待譯統一代碼配置文件的存儲地址。
S170:根據配置譯碼映射表將所述待譯統一代碼配置文件轉換為代碼編譯文件。所述配置譯碼映射表包括統一關鍵字與代碼編譯文件的關鍵字的映射關系。具體地,發起信息中還包括目標文件格式。根據配置譯碼映射表及發起信息將所述待譯統一代碼配置文件轉換為目標文件格式的代碼編譯文件。目標文件格式為不少于兩文件格式中的一種格式。
需要說明的是傳統編譯方法中代碼配置文件與代碼編譯文件的格式是相同的,只是存儲的位置不同。在本實施例中,采用統一代碼配置文件替換了傳統的代碼配置文件,即,無論代碼編譯文件需要什么樣的數據格式,均通過統一的數據格式采用統一關鍵字描述數據配置信息。從而無需通過各種數據格式對應的關鍵字來描述數據配置信息。
S180:對所述代碼編譯文件及與所述待譯統一代碼配置文件屬于同一項目的項目代碼文件進行編譯。
如此,對一個項目進行編譯,可以得到編譯后的編譯結果,具體為一個二進制的可執行程序。
上述編譯方法,獲取發起對統一代碼配置文件進行自動編譯的發起信息,所述統一代碼配置文件通過統一的數據格式采用統一關鍵字描述數據配置信息;不少于兩種文件格式的代碼配置文件的語義相同的關鍵字均對應同一組所述統一關鍵字;所述代碼配置文件采用與所述文件格式對應的數據格式的關鍵字描述數據配置信息;根據所述發起信息提取待編譯的待譯統一代碼配置文件;根據配置譯碼映射表將所述待譯統一代碼配置文件轉換為代碼編譯文件;所述配置譯碼映射表包括統一關鍵字與代碼編譯文件的關鍵字的映射關系;對所述代碼編譯文件及與所述待譯統一代碼配置文件屬于同一項目的項目代碼文件進行編譯。由于該編譯方法中的統一配置代碼文件通過統一的數據格式采用統一關鍵字描述數據配置信息,而不是采用直接通過代碼編譯文件的文件格式對應的數據格式(也即代碼配置文件的文件格式對應的數據格式)的關鍵字來描述數據配置信息,因此,其通用性高,可靈活適配不同的方案供應商或平臺。
需要說明的是,由于該編譯方法通用性高、可靈活適配不同的方案供應商或平臺,可以減少工程師切換方案的學習成本。同時,不誤對不同方案做特殊處理,可以降低云編譯系統的維護成本。因此,上述編譯方法,可以節約成本。
為理解方便,舉一個例子。如,若一個項目代碼文件為SQL文件,該項目代碼文件相關的代碼編譯文件也應該為SQL文件,即發起信息中的目標格式應該為SQL語言格式。傳統編譯方法中代碼配置文件也應該采用SQL語言格式描述數據配置信息,才能直接進行編譯。本實施例中,代碼配置文件采用的是統一代碼配置文件,即是一種統一的數據格式描述數據配置信息的語言格式,如,可以為C語言格式,也即,在本示例中,用C語言格式來描述SQL語言格式中的關鍵字。若另一個項目文件為H文件(頭文件或者宏文件)或者JAVA文件,在本示例中,也是采用C語言格式描述數據配置信息,而不是用為H文件或者JAVA文件對應的宏或者JAVA語言描述數據配置信息。需要說明的是,若還有一個項目文件本來就是C文件,在用統一的數據格式C語言描述該C文件時,其內部數據結構采用統一的數據格式中所定義的方式。
請參閱圖2,在其中一個實施例中,所述根據所述發起信息提取待編譯的待譯統一代碼配置文件的步驟之前,即步驟S160之前,還包括:
S140:當根據所述發起信息判定云編譯系統有新建的待譯統一web配置文件時,根據所述發起信息獲取所述待譯統一web配置文件。所述待譯統一web配置文件采用統一的格式描述web配置信息。
S150:根據web配置映射表將所述待譯統一web配置文件轉換為所述待譯統一代碼配置文件。所述web配置映射表包括所述待譯統一web配置文件的關鍵字與所述待譯統一代碼配置文件中的數據的映射關系。所述待譯統一代碼配置文件中的每一個數據均對應所述統一web配置文件中的一個關鍵字。
在本實施例中,用戶可以通過客戶端,修改數據配置信息。若有修改,客戶端將新建一個待譯統一web配置文件,并將該待譯統一web配置文件上傳至云編譯平臺上的云編譯系統。發起信息還包括云編譯系統中是否有新建的待譯統一web配置文件,若有,則發起信息還包括待譯統一web配置文件的存儲路徑,否則,發起信息中的存儲待譯統一web配置文件的存儲路徑的位置為空。
在一個具體實施例中,根據web配置映射表將所述待譯統一web配置文件轉換為所述待譯統一代碼配置文件之后,還需將待譯統一代碼配置文件存儲到發起信息中待議統一代碼配置文件的存儲路徑上。
如此,可以根據客戶的需求,具體根據在客戶端新建的待譯統一web配置文件來修改數據配置信息,并將修改后的待譯統一web配置文件轉換為統一代碼配置文件,進而再轉換成代碼編譯文件,最后對該代碼編譯文件進行編譯。因此,該編譯方法可以實現對客戶端的進行的數據配置信息修改進行及時的編譯。
在其中一個實施例中,所述獲取發起對統一代碼配置文件進行自動編譯的發起信息的步驟之前,即步驟S120之前,還包括:
S110:根據所述web配置映射表將預設的統一代碼配置文件轉換成統一web配置文件,并將所述統一web配置文件上傳至所述云編譯系統。
在整個項目發布到各個客戶端時,需要將項目代碼文件中的統一代碼配置文件轉換成統一web配置文件,并將所述統一web配置文件上傳至所述云編譯系統,以使得各個客戶端可以下載該統一web配置文件,并根據該統一web配置文件通過網頁對統一代碼配置文件中的數據配置信息進行數據顯示。從而,客戶可以通過客戶端新增統一web配置文件的方式對統一代碼配置文件進行修改。
在一個具體實施例中,步驟S110之前,還可以包括:獲取云編譯系統發起自動配置時發送的自動配置指令;更新與所述統一代碼配置文件屬于同一項目的項目代碼文件;將預設的統一代碼配置文件拷貝到緩存區。其中,自動配置指令可以為云編譯系統在預設時間發起自動配置時發送的。預設時間可以為每天的0點或/及12點,可以理解地,在其它實施例中,預設時間也可以設置為其它時間。
在其中一個實施例中,配置譯碼映射表及web配置映射表設置在同一個表中,該表命名為標準文件映射表。如此,可以不區分多個映射表。可以理解地,在其它區分這兩個映射表的實施例中,由于兩個映射表分開設置,每個映射表的內容均較小,如此,可以節約轉換時間,從而,提高編譯方法的運行速度。
在其中一個實施例中,所述對所述代碼編譯文件及與所述待譯統一代碼配置文件屬于同一項目的代碼進行編譯的步驟之后,即步驟S180之后,還包括:
S190:發布編譯結果至新建所述待譯統一web配置文件的客戶端。
如此,可以將在客戶端修改的數據配置信息,反應到對應的客戶端。
在其中一個實施例中,發起信息中包括發布范圍。通過發布范圍來限定發布的客戶端。如,由項目組的開發人員,發起的編譯,可以將發布范圍設定為所有的客戶端或指定的部分客戶端;而由客戶端發起的編譯,可以將發布范圍設定為該客戶端自身。可以理解地,在本實施例中,步驟S190為,根據發起信息發布編譯結果至對應的客戶端。
在其中一個實施例中,所述根據所述發起信息提取待編譯的待譯統一代碼配置文件的步驟之前,即步驟S160,還包括:
S130:更新與所述統一代碼配置文件屬于同一項目的項目代碼文件。
如此,可以在進行編譯前,先更新項目代碼文件。從而,保證編譯方法編譯的項目代碼文件的為最新的項目代碼文件。
在一個具體實施例中,統一web配置文件的泛型定義格式為:
{
DESCRIPTION:{……}//文件版本以及其他描述信息
數組關鍵字1:{
name:數組網頁顯示名稱//NONE(NONE表示該數據不在網頁上配置,只//會被原封不動繼承)
RANGE{
數值1關鍵字:{name:網頁顯示名稱,min:最小值,max:最大值};
數值2關鍵字:{}
……
"info":{//根據需要特殊補充(一般不用)
DATA1KEY2A:{max:最大值,min:最小值},
DATA1KEY2B:{max:最大值},
}
};
DATA1KEY1:{
DATA1KEY2A:{數值1關鍵字:數值,數值2關鍵字:數值……};
DATA1KEY2B
};
DATA2KEY1:{};
……
}
NONE:{
DATA1KEY1:(其他不上網頁配置的數據}
……
}
數組關鍵字2:{}
……
}
其中,DESCRIPTION/RANGE/NONE/info都是已經約定的特殊的不可再被項目定義的關鍵字。
其中,DATA1KEY1/DAYA2KEY2構成網頁顯示的二維表格。請參閱圖3,DTV/ATV等對應DATA1KEY1,COLD/NORMAL等對應DATA1KEY2X,OFFSET/GAIN等對應RANGE中的數值關鍵字。
請參閱圖4,本發明還提供一種實施方式的編譯裝置,包括:
發起信息獲取模塊420,用于獲取發起對統一代碼配置文件進行自動編譯的發起信息。所述統一代碼配置文件通過統一的數據格式采用統一關鍵字描述數據配置信息;不少于兩種文件格式的代碼配置文件的語義相同的關鍵字均對應同一組所述統一關鍵字;所述代碼配置文件采用與所述文件格式對應的數據格式的關鍵字描述數據配置信息。
待譯文件提取模塊460,用于根據所述發起信息提取待編譯的待譯統一代碼配置文件;
待譯文件轉換模塊470,用于根據配置譯碼映射表將所述待譯統一代碼配置文件轉換為代碼編譯文件;所述配置譯碼映射表包括統一關鍵字與代碼編譯文件的關鍵字的映射關系;
項目文件編譯模塊480,用于對所述代碼編譯文件及與所述待譯統一代碼配置文件屬于同一項目的項目代碼文件進行編譯。
上述編譯裝置,獲取發起對統一代碼配置文件進行自動編譯的發起信息,所述統一代碼配置文件通過統一的數據格式采用統一關鍵字描述數據配置信息;不少于兩種文件格式的代碼配置文件的語義相同的關鍵字均對應同一組所述統一關鍵字;所述代碼配置文件采用與所述文件格式對應的數據格式的關鍵字描述數據配置信息;根據所述發起信息提取待編譯的待譯統一代碼配置文件;根據配置譯碼映射表將所述待譯統一代碼配置文件轉換為代碼編譯文件;所述配置譯碼映射表包括統一關鍵字與代碼編譯文件的關鍵字的映射關系;對所述代碼編譯文件及與所述待譯統一代碼配置文件屬于同一項目的項目代碼文件進行編譯。由于該編譯裝置中的統一配置代碼文件通過統一的數據格式采用統一關鍵字描述數據配置信息,而不是采用直接通過代碼編譯文件的文件格式對應的數據格式(也即代碼配置文件的文件格式對應的數據格式)的關鍵字來描述數據配置信息,因此,其通用性高,可靈活適配不同的方案供應商或平臺。
請參閱圖5,在其中一個實施例中,還包括:待譯web獲取模塊440及待譯web轉換模塊450;
所述待譯web獲取模塊440,用于當根據所述發起信息判定云編譯系統有新建的待譯統一web配置文件時,根據所述發起信息獲取所述待譯統一web配置文件;所述待譯統一web配置文件采用統一的格式描述web配置信息;
所述待譯web轉換模塊450,用于根據web配置映射表將所述待譯統一web配置文件轉換為所述待譯統一代碼配置文件;所述web配置映射表包括所述待譯統一web配置文件的關鍵字與所述待譯統一代碼配置文件中的數據的映射關系;所述待譯統一代碼配置文件中的每一個數據均對應所述統一web配置文件中的一個關鍵字;
所述待譯文件提取模塊460,用于根據所述發起信息提取所述待譯統一代碼配置文件。
請繼續參閱圖5,在其中一個實施例中,還包括:
web配置上傳模塊410,用于根據所述web配置映射表將預設的統一代碼配置文件轉換成統一web配置文件,并將所述統一web配置文件上傳至所述云編譯系統。
請繼續參閱圖5,在其中一個實施例中,還包括:
編譯結果發布模塊490,用于在所述項目文件編譯模塊580進行編譯之后,根據發起信息發布編譯結果至對應的客戶端。
請繼續參閱圖5,在其中一個實施例中,還包括:
項目文件更新模塊430,用于更新與所述統一代碼配置文件屬于同一項目的項目代碼文件。
由于上述裝置與上述方法對應,因此,對于裝置的細節技術特征不再一一贅述。
以上實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出多個變形和改進,這些都屬于本發明的保護范圍。因此,本發明專利的保護范圍應以所附權利要求為準。