專利名稱:自動化構(gòu)建方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種自動化構(gòu)建方法及裝置。
背景技術(shù):
自動化構(gòu)建是目前計(jì)算機(jī)軟件產(chǎn)品集成的主要方法,通過自動化獲取源代碼,再 進(jìn)行編譯和集成這樣一個流程來進(jìn)行軟件產(chǎn)品研發(fā)。特別是對于大型的軟件產(chǎn)品,自動化 構(gòu)建顯得極為重要。現(xiàn)有的自動化構(gòu)建方式中,在程序員開發(fā)完代碼,由項(xiàng)目相關(guān)負(fù)責(zé)人或者開發(fā)人 員將其存儲到代碼庫后,將直接自動化獲取源代碼,并進(jìn)行編譯及集成。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺點(diǎn)現(xiàn)有的自動化構(gòu)建在項(xiàng)目開發(fā)過程中,缺少對參與人員的有效管理機(jī)制;又由于 每個參與人員都可直接訪問代碼庫,將存在較高風(fēng)險(xiǎn),導(dǎo)致代碼的信息安全性低。
發(fā)明內(nèi)容
為了提高源代碼的信息安全性能,進(jìn)而提高軟件開發(fā)的效率,同時保證開發(fā)的軟 件質(zhì)量,本發(fā)明實(shí)施例提供了一種自動化構(gòu)建方法及裝置。所述技術(shù)方案如下—方面,提供了一種自動化構(gòu)建方法,所述方法包括獲取編譯信息,并對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn),所述編譯信息至少包括項(xiàng) 目組成員信息、源代碼信息以及構(gòu)建編譯方式信息;如果所述編譯信息通過構(gòu)建校驗(yàn),則獲取源代碼,并在成功獲取源代碼后,對獲取 到的所述源代碼進(jìn)行編譯和集成;如果所述編譯信息未通過構(gòu)建校驗(yàn),則獲取并存儲錯誤信息。另一方面,提供了一種自動化構(gòu)建裝置,所述裝置包括獲取模塊,用于獲取編譯信息,所述編譯信息至少包括項(xiàng)目組成員信息、源代碼信 息以及構(gòu)建編譯方式信息;構(gòu)建校驗(yàn)?zāi)K,用于對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn);第一處理模塊,用于在所述編譯信息通過所述構(gòu)建校驗(yàn)?zāi)K的構(gòu)建校驗(yàn)時,則獲 取源代碼,并在成功獲取源代碼后,對獲取到的所述源代碼進(jìn)行編譯和集成;第二處理模塊,用于在所述編譯信息未通過所述構(gòu)建校驗(yàn)?zāi)K的構(gòu)建校驗(yàn)時,則 獲取并存儲錯誤信息。本發(fā)明實(shí)施例提供的技術(shù)方案的有益效果是通過對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn),并在構(gòu)建校驗(yàn)通過之后,再獲取源代碼, 不僅可以提高源代碼的信息安全性,還能提高軟件開發(fā)的效率,保證開發(fā)的軟件質(zhì)量;又由 于編譯信息中還包括項(xiàng)目組成員信息,因而可將源代碼和項(xiàng)目組成員信息進(jìn)行關(guān)聯(lián),便于 對項(xiàng)目組成員進(jìn)行管理。
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于 本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。圖1是本發(fā)明實(shí)施例一提供的自動化構(gòu)建方法流程圖;圖2是本發(fā)明實(shí)施例二提供的自動化構(gòu)建方法流程圖;圖3是本發(fā)明實(shí)施例三提供的自動化構(gòu)建裝置結(jié)構(gòu)示意圖;圖4是本發(fā)明實(shí)施例三提供的構(gòu)建校驗(yàn)?zāi)K結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方 式作進(jìn)一步地詳細(xì)描述。實(shí)施例一參見圖1,本實(shí)施例提供了一種自動化構(gòu)建方法,該方法流程具體如下101 獲取編譯信息,并對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn),該編譯信息至少包括 項(xiàng)目組成員信息、源代碼信息以及構(gòu)建編譯方式信息;如果編譯信息通過構(gòu)建校驗(yàn),則執(zhí)行 102,如果編譯信息未通過構(gòu)建校驗(yàn),則執(zhí)行103 ;102 獲取源代碼,并在成功獲取源代碼后,對獲取到的源代碼進(jìn)行編譯和集成;103 獲取并存儲錯誤信息。其中,本實(shí)施例及后續(xù)實(shí)施例涉及到的編譯信息,包括但不限于以下信息a、項(xiàng)目組成員信息包括本次構(gòu)建的開發(fā)人員標(biāo)識、所屬項(xiàng)目組明細(xì)和構(gòu)建編譯 的時間等信息;b、源代碼信息包括源代碼在代碼庫中的位置、編譯構(gòu)建輸出的文件類型(例如 exe, dll,ocx, sql等)、文件版本信息(主版本號和次版本號)、支持對應(yīng)的操作系統(tǒng)明細(xì) (主流操作系統(tǒng),如Windows、Linux版本,同時包括對應(yīng)系統(tǒng)的地區(qū)和語言)、共享模式、注 冊類型、本地路徑位置、兼容模式和覆蓋模式等信息;C、構(gòu)建編譯方式信息至少分為立即編譯源代碼和定時編譯源代碼兩種編譯方 式。本實(shí)施例不對定時的具體時間進(jìn)行限定,可根據(jù)實(shí)際情況進(jìn)行設(shè)定,例如,設(shè)定每隔一 分鐘對源代碼進(jìn)行編譯。本實(shí)施例提供的方法,通過對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn),并在構(gòu)建校驗(yàn)通 過之后,再獲取源代碼,不僅可以提高源代碼的信息安全性,還能提高軟件開發(fā)的效率,保 證開發(fā)的軟件質(zhì)量;另外,又由于編譯信息中還包括項(xiàng)目組成員信息,因而可將源代碼和項(xiàng) 目組成員信息進(jìn)行關(guān)聯(lián),便于對項(xiàng)目組成員進(jìn)行管理。實(shí)施例二本實(shí)施例提供了一種自動化構(gòu)建方法,該方法在對源代碼進(jìn)行編譯和集成之前, 先獲取編譯信息,并對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn),保證在編譯信息校驗(yàn)通過的情況 下,再獲取源代碼,從而保證源代碼的信息安全性,進(jìn)而提高開發(fā)的軟件質(zhì)量。參見圖2,方 法流程具體如下
201 獲取編譯信息,并對獲取到的編譯信息中的項(xiàng)目組成員信息進(jìn)行校驗(yàn);如果 校驗(yàn)通過,則執(zhí)行步驟202,如果校驗(yàn)未通過,則執(zhí)行步驟205 ;針對該步驟,由于編譯信息至少包括項(xiàng)目組成員信息、源代碼信息以及構(gòu)建編譯 方式信息,如果這些編譯信息通過一個文件存儲,則在獲取編譯信息時,通過獲取一個文件 即可獲取到編譯信息,如果這些編譯信息是分別存儲在不同的文件中,例如,項(xiàng)目組成員信 息存儲在文件A中,而源代碼信息及構(gòu)建編譯方式信息存儲在另外的文件B中,則在獲取編 譯信息時,需要通過獲取文件A和文件B才能獲取到編譯信息。也就是說,編譯信息可以存 儲在同一個文件中,也可以存儲在多個文件中,本實(shí)施例對存儲編譯信息的方式不作限定, 同樣不對獲取編譯信息的方式進(jìn)行限定。而獲取編譯信息之后,對項(xiàng)目組成員信息進(jìn)行校驗(yàn)的目的,是為了防止非本項(xiàng)目 成員對該項(xiàng)目的源代碼進(jìn)行任意修改,因此,通過對項(xiàng)目組成員信息進(jìn)行校驗(yàn),可以對項(xiàng)目 組成員進(jìn)行有效管理。202:查詢代碼庫,對獲取到的編譯信息中的代碼信息進(jìn)行校驗(yàn),如果校驗(yàn)通過,則 執(zhí)行步驟203,如果校驗(yàn)未通過,則執(zhí)行步驟205 ;針對該步驟,由于是在對編譯信息中的項(xiàng)目組成員信息進(jìn)行校驗(yàn)之后,才查詢代 碼庫,因而可以保證代碼庫的信息安全。203 獲取源代碼,如果獲取成功,則執(zhí)行步驟204,如果獲取失敗,則執(zhí)行步驟 205 ;具體地,由于編譯信息中的源代碼信息中包括源代碼在代碼庫中的位置、編譯構(gòu) 建輸出的文件類型、文件版本信息、本地路徑位置等信息,因此,可根據(jù)編譯信息中的源代 碼信息獲取源代碼。204 對獲取到的源代碼進(jìn)行編譯和集成,流程結(jié)束;具體地,由于編譯信息中的構(gòu)建編譯方式信息中至少定義了立即編譯源代碼和定 時編譯源代碼兩種編譯方式,因此,可按照編譯信息中的構(gòu)建編譯方式信息,對獲取到的源 代碼進(jìn)行編譯。例如,如果編譯信息中的構(gòu)建編譯方式信息為立即編譯源代碼,則在獲取源 代碼之后,需要立即對獲取到的源代碼進(jìn)行編譯;如果編譯信息中的構(gòu)建編譯方式信息為 定時編譯源代碼,則在獲取源代碼之后,按照預(yù)定時間編譯源代碼,本實(shí)施例不對定時編譯 源代碼的預(yù)定時間進(jìn)行具體限定。優(yōu)選地,本實(shí)施例提供的方法在對獲取到的源代碼進(jìn)行編譯和集成之前,還包括 獲取并存儲源代碼日志。該源代碼日志記錄了源代碼獲取的相關(guān)信息,例如,獲取源代碼的 時間,源代碼所在的代碼庫的標(biāo)識,以及源代碼在代碼庫中的位置等信息,本實(shí)施例不對源 代碼日志的具體內(nèi)容進(jìn)行限定。在存儲該源代碼日志時,可將該源代碼日志存儲到日志信 息庫中,以便研發(fā)或管理人員通過查詢?nèi)罩拘畔?,獲知源代碼的詳細(xì)信息。205 獲取并存儲錯誤信息,流程結(jié)束。其中,錯誤信息有多種,例如,在對編譯信息中的項(xiàng)目組成員信息進(jìn)行校驗(yàn)時,如 果校驗(yàn)未通過,則獲取到錯誤信息;在獲取源代碼時,源代碼獲取失敗時,也可獲取到錯誤 信息。獲取錯誤信息的方式也可以有多種,本實(shí)施例不對獲取錯誤信息的具體方式及錯誤 信息的具體內(nèi)容進(jìn)行限定。另外,本實(shí)施例同樣不對存儲錯誤信息的方式進(jìn)行限定,實(shí)際應(yīng) 用過程中,可將獲取到的錯誤信息保存到日志信息庫中,以便研發(fā)或管理人員通過查詢?nèi)罩拘畔?,獲知項(xiàng)目開發(fā)過程中的失敗原因。進(jìn)一步地,在對源代碼進(jìn)行編譯和集成之后,還可對集成后的產(chǎn)品進(jìn)行發(fā)布,如果 在產(chǎn)品集成或發(fā)布過程中出現(xiàn)了問題,則可以通過查詢?nèi)罩拘畔?,?shí)現(xiàn)問題的定位。例 如,通過查詢?nèi)罩拘畔?,可快速查找出哪些源代碼被修改過,并被提交和編譯,則經(jīng)過排 查,即可很快定位出問題的代碼,并且查找到對應(yīng)的項(xiàng)目組成員。本實(shí)施例提供的方法,通過對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn),并在構(gòu)建校驗(yàn)通 過之后,再獲取源代碼,因而可以提高源代碼的信息安全性,且通過對源代碼信息進(jìn)行校 驗(yàn),從而能夠保證開發(fā)的軟件質(zhì)量;另外,根據(jù)源代碼信息獲取源代碼之后,再進(jìn)行編譯,使 得代碼編譯的針對性強(qiáng),可節(jié)約編譯時間,提高編譯效率,進(jìn)而提高軟件開發(fā)的效率;又由 于編譯信息中還包括項(xiàng)目組成員信息,因而可將源代碼和項(xiàng)目組成員信息進(jìn)行關(guān)聯(lián),通過 對項(xiàng)目組成員信息進(jìn)行校驗(yàn),便于對項(xiàng)目組成員進(jìn)行管理。實(shí)施例三參見圖3,本實(shí)施例提供了一種自動化構(gòu)建裝置,該裝置包括獲取模塊301,用于獲取編譯信息,該編譯信息至少包括項(xiàng)目組成員信息、源代碼 信息以及構(gòu)建編譯方式信息;構(gòu)建校驗(yàn)?zāi)K302,用于對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn);第一處理模塊303,用于在編譯信息通過構(gòu)建校驗(yàn)?zāi)K302的構(gòu)建校驗(yàn)時,則獲取 源代碼,并在成功獲取源代碼后,對獲取到的源代碼進(jìn)行編譯和集成;第二處理模塊304,用于在編譯信息未通過構(gòu)建校驗(yàn)?zāi)K301構(gòu)建校驗(yàn)時,則獲取 并存儲錯誤信息。其中,參見圖4,構(gòu)建校驗(yàn)?zāi)K302,具體包括校驗(yàn)單元30加,用于對獲取到的編譯信息中的項(xiàng)目組成員信息進(jìn)行校驗(yàn);第一處理單元30 ,用于在編譯信息中的項(xiàng)目組成員信息未通過校驗(yàn)單元301a 的校驗(yàn)時,則判斷編譯信息未通過構(gòu)建校驗(yàn);第二處理單元302c,用于在編譯信息中的項(xiàng)目組成員信息通過校驗(yàn)單元301a的 校驗(yàn)后,查詢代碼庫,對編譯信息中的源代碼信息進(jìn)行校驗(yàn),并在源代碼信息未通過校驗(yàn) 時,判斷編譯信息未通過構(gòu)建校驗(yàn),否則,判斷編譯信息通過構(gòu)建校驗(yàn)。具體地,第一處理模塊303在獲取源代碼時,具體用于根據(jù)編譯信息中的源代碼 信息獲取源代碼。第一處理模塊303在對源代碼進(jìn)行編譯時,具體用于按照編譯信息中的構(gòu)建編譯 方式信息,對源代碼進(jìn)行編譯。進(jìn)一步地,第一處理模塊303在對源代碼進(jìn)行編譯和集成之前,還用于獲取并存 儲源代碼日志。綜上,本實(shí)施例提供的裝置,本實(shí)施例提供的方法,通過對獲取到的編譯信息進(jìn)行 構(gòu)建校驗(yàn),并在構(gòu)建校驗(yàn)通過之后,再獲取源代碼,因而可以提高源代碼的信息安全性,且 通過對源代碼信息進(jìn)行校驗(yàn),從而能夠保證開發(fā)的軟件質(zhì)量;另外,根據(jù)源代碼信息獲取源 代碼之后,再進(jìn)行編譯,使得代碼編譯的針對性強(qiáng),可節(jié)約編譯時間,提高編譯效率,進(jìn)而提 高軟件開發(fā)的效率;又由于編譯信息中還包括項(xiàng)目組成員信息,因而可將源代碼和項(xiàng)目組 成員信息進(jìn)行關(guān)聯(lián),通過對項(xiàng)目組成員信息進(jìn)行校驗(yàn),便于對項(xiàng)目組成員進(jìn)行管理。
上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。本發(fā)明實(shí)施例中的全部或部分步驟,可以利用軟件實(shí)現(xiàn),相應(yīng)的軟件程序可以存 儲在可讀取的存儲介質(zhì)中,如光盤或硬盤等。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和 原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種自動化構(gòu)建方法,其特征在于,所述方法包括獲取編譯信息,并對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn),所述編譯信息至少包括項(xiàng)目組 成員信息、源代碼信息以及構(gòu)建編譯方式信息;如果所述編譯信息通過構(gòu)建校驗(yàn),則獲取源代碼,并在成功獲取源代碼后,對獲取到的 所述源代碼進(jìn)行編譯和集成;如果所述編譯信息未通過構(gòu)建校驗(yàn),則獲取并存儲錯誤信息。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn), 具體包括對獲取到的編譯信息中的項(xiàng)目組成員信息進(jìn)行校驗(yàn);如果所述編譯信息中的項(xiàng)目組成員信息未通過校驗(yàn),則判斷所述編譯信息未通過構(gòu)建 校驗(yàn);如果所述編譯信息中的項(xiàng)目組成員信息通過校驗(yàn),則查詢代碼庫,對所述編譯信息中 的源代碼信息進(jìn)行校驗(yàn),如果所述源代碼信息未通過校驗(yàn),則判斷所述編譯信息未通過構(gòu) 建校驗(yàn),否則,判斷所述編譯信息通過構(gòu)建校驗(yàn)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取源代碼,具體包括 根據(jù)所述編譯信息中的源代碼信息獲取源代碼。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述源代碼進(jìn)行編譯,具體包括 按照所述編譯信息中的構(gòu)建編譯方式信息,對所述源代碼進(jìn)行編譯。
5.根據(jù)權(quán)利要求1至4任一權(quán)利要求所述的方法,其特征在于,所述對所述源代碼進(jìn)行 編譯和集成之前,還包括獲取并存儲源代碼日志。
6.一種自動化構(gòu)建裝置,其特征在于,所述裝置包括獲取模塊,用于獲取編譯信息,所述編譯信息至少包括項(xiàng)目組成員信息、源代碼信息以 及構(gòu)建編譯方式信息;構(gòu)建校驗(yàn)?zāi)K,用于對所述獲取模塊獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn); 第一處理模塊,用于在所述編譯信息通過所述構(gòu)建校驗(yàn)?zāi)K的構(gòu)建校驗(yàn)時,則獲取源 代碼,并在成功獲取源代碼后,對獲取到的所述源代碼進(jìn)行編譯和集成;第二處理模塊,用于在所述編譯信息未通過所述構(gòu)建校驗(yàn)?zāi)K的構(gòu)建校驗(yàn)時,則獲取 并存儲錯誤信息。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述構(gòu)建校驗(yàn)?zāi)K,具體包括 校驗(yàn)單元,用于對獲取到的編譯信息中的項(xiàng)目組成員信息進(jìn)行校驗(yàn);第一處理單元,用于在所述編譯信息中的項(xiàng)目組成員信息未通過所述校驗(yàn)單元的校驗(yàn) 時,則判斷所述編譯信息未通過構(gòu)建校驗(yàn);第二處理單元,用于在所述編譯信息中的項(xiàng)目組成員信息通過所述校驗(yàn)單元的校驗(yàn) 后,查詢代碼庫,對所述編譯信息中的源代碼信息進(jìn)行校驗(yàn),并在所述源代碼信息未通過校 驗(yàn)時,判斷所述編譯信息未通過構(gòu)建校驗(yàn),否則,判斷所述編譯信息通過構(gòu)建校驗(yàn)。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一處理模塊在獲取源代碼時,具體 用于根據(jù)所述編譯信息中的源代碼信息獲取源代碼。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一處理模塊在對所述源代碼進(jìn)行編譯時,具體用于按照所述編譯信息中的構(gòu)建編譯方式信息,對所述源代碼進(jìn)行編譯。
10.根據(jù)權(quán)利要求6至9任一權(quán)利要求所述的裝置,其特征在于,所述第一處理模塊在 對獲取到的所述源代碼進(jìn)行編譯和集成之前,還用于獲取并存儲源代碼日志。
全文摘要
本發(fā)明公開了一種自動化構(gòu)建方法及裝置,屬于計(jì)算機(jī)技術(shù)領(lǐng)域。所述方法包括獲取編譯信息,并對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn),該編譯信息至少包括項(xiàng)目組成員信息、源代碼信息以及構(gòu)建編譯方式信息;如果所述編譯信息通過構(gòu)建校驗(yàn),則獲取源代碼,并在成功獲取源代碼后,對獲取到的所述源代碼進(jìn)行編譯和集成;如果所述編譯信息未通過構(gòu)建校驗(yàn),則獲取并存儲錯誤信息。本發(fā)明通過對獲取到的編譯信息進(jìn)行構(gòu)建校驗(yàn),并在構(gòu)建校驗(yàn)通過之后,再獲取源代碼,不僅可以提高源代碼的信息安全性,還能提高軟件開發(fā)的效率,保證軟件質(zhì)量。
文檔編號G06F9/44GK102135877SQ201010103199
公開日2011年7月27日 申請日期2010年1月27日 優(yōu)先權(quán)日2010年1月27日
發(fā)明者林冠龍 申請人:金蝶軟件(中國)有限公司