證書(shū)存放的根目錄,以及各軟件版本 的數(shù)字證書(shū)的存儲(chǔ)路徑子目錄的配置項(xiàng),定義數(shù)字證書(shū)的命名規(guī)則,并將各軟件版本數(shù)字 證書(shū)存放的根目錄,以及各軟件版本的數(shù)字證書(shū)的存儲(chǔ)路徑子目錄的配置項(xiàng)寫(xiě)進(jìn)各軟件版 本的配置文件中或者以一組參數(shù)信息的形式寫(xiě)進(jìn)各軟件版本的源代碼中,即以方便后續(xù)腳 本調(diào)用的形式進(jìn)行存儲(chǔ)。下面舉例說(shuō)明如何根據(jù)所述第一軟件版本的數(shù)字證書(shū)存放的根 目錄及第一軟件版本的數(shù)字證書(shū)存儲(chǔ)路徑子目錄的配置項(xiàng),確定數(shù)字證書(shū)的存儲(chǔ)路徑,t匕 如,有軟件產(chǎn)品線A和B,所有的數(shù)字證書(shū)存放根目錄為/home/admin/keydir,按照軟件產(chǎn) 品線分類,將屬于產(chǎn)品線A的軟件和產(chǎn)品線B軟件的數(shù)字證書(shū)的種類分別統(tǒng)一為存放至目 錄:/home/admin/keydir/A/platform、/home/admin/keydir/B/shared 和 /home/admin/ keydir/B/boot中,具體數(shù)字證書(shū)可以按產(chǎn)品線的分類,進(jìn)行如下分類及存儲(chǔ)路徑配置:
[0040]
[0041] 例如,屬于產(chǎn)品線A的軟件版本編譯需要platform數(shù)字證書(shū),通過(guò)統(tǒng)一設(shè)置的 軟件版本數(shù)字證書(shū)存放的根目錄/home/admin/keydir/和設(shè)置的軟件版本數(shù)字證書(shū)存儲(chǔ) 路徑子目錄的配置項(xiàng):Key = A_platform解析出,所需的數(shù)字證書(shū)的存放路徑為:/home/ admin/keydir/A/platform,即:根據(jù)統(tǒng)一設(shè)置的軟件版本的數(shù)字證書(shū)存放的根目錄/ home/admin/keydir/與設(shè)置的軟件版本的數(shù)字證書(shū)存儲(chǔ)路徑子目錄的配置項(xiàng):Key = A_ platform可以確定該軟件版本的數(shù)字證書(shū)存儲(chǔ)路徑為軟件版本的數(shù)字證書(shū)存放的根目錄 +配置項(xiàng),也即:/home/admin/keydir/A/platform,根據(jù)數(shù)字證書(shū)的存儲(chǔ)路徑,可以獲取屬 于產(chǎn)品線A的軟件版本編譯所需的數(shù)字證書(shū)。
[0042] 實(shí)施中,為第一軟件版本安裝匹配的數(shù)字證書(shū),可以包括:將匹配的第一軟件版本 數(shù)字證書(shū)更新到第一軟件版本的工作目錄,完成第一軟件版本數(shù)字證書(shū)的安裝。
[0043] 實(shí)施中,根據(jù)索引關(guān)系為第一軟件版本匹配數(shù)字證書(shū)后安裝匹配的數(shù)字證書(shū)之 前,還可以包括:確定第一軟件版本的軟件類型,確定第一軟件版本數(shù)字證書(shū)的類型;根據(jù) 索引關(guān)系為第一軟件版本匹配數(shù)字證書(shū),具體包括:根據(jù)第一軟件版本的軟件類型確定出 相應(yīng)的第一軟件版本數(shù)字證書(shū)類型,在該第一軟件版本數(shù)字證書(shū)類型中,根據(jù)索引關(guān)系匹 配出與第一軟件版本對(duì)應(yīng)的數(shù)字證書(shū)。。
[0044] 具體實(shí)施中,為了更為合理的匹配和管理軟件版本軟件的數(shù)字證書(shū),可以根據(jù)實(shí) 際需要對(duì)軟件進(jìn)行類型定義,例如可以按照軟件產(chǎn)品線進(jìn)行類型劃分,其中,軟件產(chǎn)品線是 指具有一組可管理的公共特性的軟件密集性系統(tǒng)的合集,這些系統(tǒng)滿足特定的市場(chǎng)需求或 任務(wù)需求,并且按預(yù)定義的方式從一個(gè)公共的核心資產(chǎn)集開(kāi)發(fā)得到。每個(gè)軟件產(chǎn)品都由來(lái) 自公共資產(chǎn)庫(kù)中的組件組成,然后按照預(yù)先定義的變化機(jī)制,如參數(shù)化或繼承,對(duì)這些組件 進(jìn)行必要的裁剪,添加任何必須的新組件,根據(jù)一個(gè)產(chǎn)品線范圍內(nèi)的公共架構(gòu)來(lái)組裝這些 組件。每條軟件產(chǎn)品線都有一個(gè)預(yù)先定義的指南或計(jì)劃,用來(lái)定義確切的產(chǎn)品構(gòu)建方法。 [0045] 本發(fā)明實(shí)施例中,軟件產(chǎn)品線僅作為示例用以對(duì)本發(fā)明方案進(jìn)行說(shuō)明,軟件的類 型劃分除了按照軟件產(chǎn)品線,還可以按照軟件的功能等多個(gè)維度來(lái)進(jìn)行定義和劃分,在此 不作具體限定。
[0046] 具體實(shí)施中,若第一軟件版本屬于產(chǎn)品線B的軟件,且其軟件類型為共享類型,則 確定第一軟件版本的數(shù)字證書(shū)類型為共享類型,根據(jù)第一軟件版本的軟件類型為產(chǎn)品線B 的共享類型,確定出相應(yīng)的第一軟件版本數(shù)字證書(shū)類型為共享類型后,在該第一軟件版本 數(shù)字證書(shū)類型B_ Shared中,匹配出與第一軟件版本根據(jù)索引關(guān)系一一對(duì)應(yīng)的數(shù)字證書(shū)后 安裝數(shù)字證書(shū)。
[0047] 本發(fā)明實(shí)施例提供的含數(shù)字證書(shū)的軟件版本生成方法,根據(jù)接收到的軟件開(kāi)發(fā)編 譯版本獲得第一軟件版本,根據(jù)索引關(guān)系為第一軟件版本匹配數(shù)字證書(shū)并安裝數(shù)字證書(shū), 編譯安裝好數(shù)字證書(shū)的第一軟件版本進(jìn)行編譯后獲得第二軟件版本,將軟件版本生成過(guò)程 中的代碼編譯與數(shù)字證書(shū)匹配安裝有效結(jié)合起來(lái),解決了軟件版本數(shù)字證書(shū)簽名過(guò)程與編 譯過(guò)程分離的問(wèn)題,還將數(shù)字證書(shū)簽名過(guò)程進(jìn)行了自動(dòng)化的處理,提高了軟件版本的產(chǎn)出 效率,也便于對(duì)軟件數(shù)字證書(shū)進(jìn)行一致性管理。
[0048] 圖3為本發(fā)明實(shí)施例中含數(shù)字證書(shū)的軟件版本生成方法的實(shí)例示意圖,如圖3所 示,具體流程可以包括 :
[0049] 步驟301 :軟件構(gòu)建開(kāi)始;啟動(dòng)含數(shù)字證書(shū)的軟件版本生成流程。
[0050] 步驟302 :更新代碼;從從建立的開(kāi)發(fā)編譯版本軟件集群中,接收軟件開(kāi)發(fā)編譯版 本,并更新該軟件開(kāi)發(fā)編譯版本的代碼,以獲得一個(gè)軟件版本并將該軟件版本存儲(chǔ)至建立 的發(fā)布版本軟件集群。
[0051] 步驟303 :判斷軟件版本是否為正式發(fā)布版本;若是,執(zhí)行步驟304 ;若否,執(zhí)行步 驟 305。
[0052] 在具體實(shí)施中,可以根據(jù)該軟件版本的配置文件或源代碼攜帶軟件版本分類或?qū)?性信息的參數(shù)確定該軟件版本是否為正式發(fā)布版本。
[0053] 步驟304 :判斷該正式發(fā)布版本是否成功匹配數(shù)字證書(shū);若是,執(zhí)行步驟306 ;若 否,執(zhí)行步驟305。
[0054] 在具體實(shí)施中,可以通過(guò)以下方式判斷該正式發(fā)布版本是否成功匹配數(shù)字證書(shū): 根據(jù)該正式發(fā)布版本的數(shù)字證書(shū)存放的根目錄,以及該正式發(fā)布版本的數(shù)字證書(shū)的存儲(chǔ)路 徑子目錄的配置項(xiàng)確定該正式發(fā)布版本的數(shù)字證書(shū)的存儲(chǔ)路徑后,檢測(cè)該正式發(fā)布版本的 數(shù)字證書(shū)的存儲(chǔ)路徑下是否有數(shù)字證書(shū)存在,若有,則確定該正式發(fā)布版本成功匹配數(shù)字 證書(shū);否則,則確定該正式發(fā)布版本匹配數(shù)字證書(shū)失敗。實(shí)際中更優(yōu)選的方案,可以將該正 式發(fā)布版本的數(shù)字證書(shū)的MD5值存至該正式發(fā)布版本的配置文件中,將該正式發(fā)布版本的 數(shù)字證書(shū)的存儲(chǔ)路徑下的數(shù)字證書(shū)進(jìn)行MD5值計(jì)算后與預(yù)設(shè)在該正式發(fā)布版本的數(shù)字證 書(shū)的MD5值進(jìn)行比對(duì),若二者一致,則確定該正式發(fā)布版本成功匹配數(shù)字證書(shū);否則,則確 定該正式發(fā)布版本匹配數(shù)字證書(shū)失敗。
[0055] 步驟305 :失敗;確定該正式發(fā)布版本匹配數(shù)字證書(shū)失敗。
[0056] 步驟306 :安裝數(shù)字證書(shū);確定該正式發(fā)布版本成功匹配數(shù)字證書(shū)后,安裝該正式 發(fā)布版本成功匹配的數(shù)字證書(shū)。
[0057] 步驟307 :生成軟件正式發(fā)布版本,對(duì)安裝數(shù)字證書(shū)的該正式發(fā)布版本進(jìn)行編譯, 生成軟件正式發(fā)布版本。
[0058] 具體的,發(fā)布版本軟件集群建立后,更新代碼,在創(chuàng)建正式發(fā)布版本軟件編譯任務(wù) 時(shí),需要為該正式發(fā)布版本軟件配置數(shù)字證書(shū)的類型,在更新源代碼后,編譯之前把匹配的 證書(shū)類型更新到工作目錄,使整個(gè)正式發(fā)布版本軟件構(gòu)建過(guò)程和數(shù)字證書(shū)的簽名過(guò)程一起 完成,并且能夠自動(dòng)根據(jù)數(shù)字證書(shū)類型的不同執(zhí)行不同的操作,不需要額外增加數(shù)字證書(shū) 平臺(tái)進(jìn)行維護(hù)。
[0059] 基于上述含數(shù)字證書(shū)的軟件版本生成方法的同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供 了一種含數(shù)字證書(shū)的軟件版本生成裝置,由于該裝置解決問(wèn)題的原理與含數(shù)字證書(shū)的軟件 版本生成方法相似,因此該裝置的實(shí)施可以參見(jiàn)含數(shù)字證書(shū)的軟件版本生成方法的實(shí)施, 重復(fù)之處不再贅述。
[0060] 圖4為本發(fā)明實(shí)施例提供的含數(shù)字證書(shū)的軟件版本生成裝置的結(jié)構(gòu)示意圖,如圖 4所示,該含數(shù)字證書(shū)的軟件版本生成裝置,可以包括:
[0061] 獲取單元401,用于根據(jù)接收到的軟件開(kāi)發(fā)編譯版本獲得第一軟件版本;
[0062] 索引單元402,用于預(yù)設(shè)第一軟件版本的信息與數(shù)字證書(shū)的信息的索引關(guān)系;
[0063] 數(shù)字證書(shū)匹配安裝單元403,用于根據(jù)索引關(guān)系為第一軟件版本匹配數(shù)字證書(shū)后 安裝匹配的數(shù)字證書(shū);
[0064] 生成單元404,用于對(duì)安裝好數(shù)字證書(shū)的第一軟件版本進(jìn)行編譯后獲得第二軟件 版本。
[0065] 實(shí)施中,獲取單元,可以進(jìn)一步用于從建立的開(kāi)發(fā)編譯版本軟件集群中,接收軟件 開(kāi)發(fā)編譯版本;將根據(jù)從接收的所述軟件開(kāi)發(fā)編譯版本軟件集群獲得的第一軟件版本存儲(chǔ) 至建立的發(fā)布版本軟件集群,其中,所述發(fā)布版本軟件集群與所述開(kāi)發(fā)編譯版本軟件集群 隔離;
[0066