本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,具體而言,涉及一種軟件生成方法和裝置。
背景技術(shù):
當(dāng)開發(fā)人員在進(jìn)行軟件開發(fā)時,需要編寫代碼,但是一個軟件是由多個功能模塊組成的,每個功能模塊都需要編寫對應(yīng)的代碼,并將各個功能模塊對應(yīng)的代碼以項目為單位存儲在解決方案文件中,當(dāng)需要生成軟件時,將該軟件對應(yīng)的解決方案文件導(dǎo)入軟件生成工具即可,在現(xiàn)有技術(shù)中,大都是通過Visual Studio工具生成軟件。
有的軟件在進(jìn)行開發(fā)時,可能是由一個團(tuán)隊中的多人合作開發(fā)的,每人負(fù)責(zé)開發(fā)其中一部分,在進(jìn)行開發(fā)時,每人將其負(fù)責(zé)的項目的代碼寫入一個解決方案文件,這樣,該軟件會對應(yīng)多個解決方案文件,并且每個解決方案文件中的項目之間可能會存在引用關(guān)系,而在生成軟件時,需要先生成被引用的項目。
在采用現(xiàn)有技術(shù)中的方法生成軟件時,大都是以解決方案文件為單位生成,即一次生成一個解決方案文件中的項目,如果,需要生成的軟件對應(yīng)多個解決方案文件,這樣,需要進(jìn)行多次生成才能生成完整的軟件,但是,當(dāng)多個解決方案文件中的項目之間存在互相引用關(guān)系時,如果某個解決方案文件中有引用關(guān)系的項目存在改動,再采用上述方式生成軟件時,在生成該解決方案文件中的項目時,可能會仍然采用改動之前的項目進(jìn)行生成,這樣會導(dǎo)致整個軟件生成失敗或者生成報錯。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施方式的目的在于提供一種軟件生成方法和裝置,以解決當(dāng)多個解決方案文件中的項目之間存在互相引用關(guān)系時,如果某個解決方案文件中有引用關(guān)系的項目存在改動,再采用現(xiàn)有技術(shù)中的方式生成軟件時,在生成該解決方案文件中的項目時,可能會仍然采用改動之前的項目進(jìn)行生成,這樣會導(dǎo)致整個軟件生成失敗或者生成報錯的問題。
第一方面,本發(fā)明實施方式提供了一種軟件生成方法,其中,該方法包括:
獲取待生成軟件對應(yīng)的至少一個解決方案文件,所述解決方案文件包括多個項目;
確定所述解決方案文件中各個所述項目之間的引用關(guān)系;
根據(jù)所述項目之間的引用關(guān)系及所述解決方案文件的預(yù)設(shè)順序?qū)λ鲰椖窟M(jìn)行排序,得到項目生成順序列表;
按照所述項目生成順序列表生成所述待生成軟件。
結(jié)合第一方面,本發(fā)明實施方式提供了上述第一方面的第一種可能的實現(xiàn)方式,其中,所述確定所述解決方案文件中各個所述項目之間的引用關(guān)系,包括:
根據(jù)所述項目的標(biāo)識從所述解決方案文件中獲取各個所述項目對應(yīng)的項目文件,所述項目文件包括所述項目在所述解決方案文件中的存儲路徑及所述項目引用的其他項目;
根據(jù)各個所述項目引用的其他項目,確定各個所述項目之間的引用關(guān)系。
結(jié)合第一方面,本發(fā)明實施方式提供了上述第一方面的第二種可能的實現(xiàn)方式,其中,所述根據(jù)所述項目之間的引用關(guān)系及所述解決方案文件的預(yù)設(shè)順序?qū)λ鲰椖窟M(jìn)行排序,包括:
將所述解決方案文件包括的項目組成項目列表;
根據(jù)所述項目之間的引用關(guān)系,將所述項目列表中沒有引用關(guān)系的項目組成第一子項目列表,將所述項目列表中被其他項目引用且沒有引用其他項目的項目組成第二子項目列表,將所述項目列表中引用其他項目的項目組成第三子項目列表;
按照所述解決方案文件的預(yù)設(shè)順序?qū)λ龅谝蛔禹椖苛斜碇械捻椖窟M(jìn)行排序,及按照所述解決方案文件的預(yù)設(shè)順序?qū)λ龅诙禹椖苛斜碇械捻椖窟M(jìn)行排序;
按照被引用優(yōu)先的原則及所述解決方案文件的預(yù)設(shè)順序?qū)λ龅谌禹椖苛斜碇械捻椖窟M(jìn)行排序;
將所述第三子項目列表排在所述第二子項目列表的后面。
結(jié)合第一方面的第二種可能的實現(xiàn)方式,本發(fā)明實施方式提供了上述第一方面的第三種可能的實現(xiàn)方式,其中,將所述第一子項目列表置于所述第二子項目列表的前面;
或者,將所述第一子項目列表置于所述第三子項目列表的后面。
結(jié)合第一方面的第二種可能的實現(xiàn)方式,本發(fā)明實施方式提供了上述第一方面的第四種可能的實現(xiàn)方式,其中,所述按照所述解決方案文件的預(yù)設(shè)順序?qū)λ龅谝蛔禹椖苛斜碇械捻椖窟M(jìn)行排序,包括:
確定所述第一子項目列表中的項目所在的解決方案文件;
將所述解決方案文件的預(yù)設(shè)順序確定為所述第一子項目列表中的項目的排列順序。
結(jié)合第一方面至第一方面的第四種可能的實現(xiàn)方式中任一種可能的實現(xiàn)方式,本發(fā)明實施方式提供了上述第一方面的第五種可能的實現(xiàn)方式,其中,所述解決方案文件的預(yù)設(shè)順序根據(jù)所述解決方案文件的名稱確定;
所述解決方案文件的名稱為字母,根據(jù)所述字母的順序確定所述解決方案文件的預(yù)設(shè)順序。
結(jié)合第一方面,本發(fā)明實施方式提供了上述第一方面的第六種可能的實現(xiàn)方式,其中,通過將所述項目生成順序列表寫入批處理文件生成所述待生成軟件。
結(jié)合第一方面的第一種可能的實現(xiàn)方式,本發(fā)明實施方式提供了上述第一方面的第七種可能的實現(xiàn)方式,其中,所述根據(jù)所述項目的標(biāo)識通過正則匹配從所述解決方案文件中獲取各個所述項目對應(yīng)的項目文件。
第二方面,本發(fā)明實施方式提供了一種軟件生成裝置,其中,所述裝置包括:
獲取模塊,用于獲取待生成軟件對應(yīng)的至少一個解決方案文件,所述解決方案文件包括多個項目;
確定模塊,用于確定所述解決方案文件中各個所述項目之間的引用關(guān)系;
排序模塊,用于根據(jù)所述項目之間的引用關(guān)系及所述解決方案文件的預(yù)設(shè)順序?qū)λ鲰椖窟M(jìn)行排序,得到項目生成順序列表;
生成模塊,用于按照所述項目生成順序列表生成所述待生成軟件。
結(jié)合第二方面,本發(fā)明實施方式提供了上述第二方面的第一種可能的實現(xiàn)方式,其中,所述確定模塊包括:
獲取單元,用于根據(jù)所述項目的標(biāo)識從所述解決方案文件中獲取各個所述項目對應(yīng)的項目文件,所述項目文件包括所述項目在所述解決方案文件中的存儲路徑及所述項目引用的其他項目;
第一確定單元,用于根據(jù)各個所述項目引用的其他項目,確定各個所述項目之間的引用關(guān)系。
結(jié)合第二方面,本發(fā)明實施方式提供了上述第二方面的第二種可能的實現(xiàn)方式,其中,所述排序模塊包括:
第一組成單元,用于將所述解決方案文件包括的項目組成項目列表;
第二組成單元,用于根據(jù)所述項目之間的引用關(guān)系,將所述項目列表中沒有引用關(guān)系的項目組成第一子項目列表,將所述項目列表中被其他項目引用且沒有引用其他項目的項目組成第二子項目列表,將所述項目列表中引用其他項目的項目組成第三子項目列表;
第一排序單元,用于按照所述解決方案文件的預(yù)設(shè)順序?qū)λ龅谝蛔禹椖苛斜碇械捻椖窟M(jìn)行排序,及按照所述解決方案文件的預(yù)設(shè)順序?qū)λ龅诙禹椖苛斜碇械捻椖窟M(jìn)行排序;
第二排序單元,用于按照被引用優(yōu)先的原則及所述解決方案文件的預(yù)設(shè)順序?qū)λ龅谌禹椖苛斜磉M(jìn)行排序;
第三排序單元,用于將所述第三子項目列表排在所述第二子項目列表的后面。
結(jié)合第二方面的第二種可能的實現(xiàn)方式,本發(fā)明實施方式提供了上述第二方面的第三種可能的實現(xiàn)方式,其中,所述第一排序單元還用于,
確定所述第一子項目列表中的項目所在的解決方案文件;將所述解決方案文件的預(yù)設(shè)順序確定為所述第一子項目列表中的項目的排列順序。
本發(fā)明實施方式提供了一種軟件生成方法和裝置,獲取待生成軟件對應(yīng)的至少一個解決方案文件,將所有解決方案文件中的項目進(jìn)行排序,得到項目生成順序列表,按照該項目生成順利列表的順序生成軟件,這樣將所有解決方案文件中的項目作為整體生成待生成軟件,避免了當(dāng)解決方案文件中的項目存在互相引用關(guān)系時,容易出現(xiàn)軟件生成失敗或者軟件生成報錯的情況的發(fā)生。
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實施方式,并配合所附附圖,作詳細(xì)說明如下。
附圖說明
為了更清楚地說明本發(fā)明實施方式的技術(shù)方案,下面將對實施方式中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施方式,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1示出了本發(fā)明實施方式1所提供的軟件生成方法的流程圖;
圖2示出了本發(fā)明實施方式1所提供的軟件生成方法中確定解決方案文件中各個項目之間的引用關(guān)系的流程圖;
圖3示出了本發(fā)明實施方式1所提供的軟件生成方法中對解決方案文件對應(yīng)的項目進(jìn)行排序的流程圖;
圖4示出了本發(fā)明實施方式2所提供的軟件生成裝置的結(jié)構(gòu)示意圖。
具體實施方式
為使本發(fā)明實施方式的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實施方式中附圖,對本發(fā)明實施方式中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施方式僅僅是本發(fā)明一部分實施方式,而不是全部的實施方式。通常在此處附圖中描述和示出的本發(fā)明實施方式的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施方式的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施方式?;诒景l(fā)明的實施方式,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施方式,都屬于本發(fā)明保護(hù)的范圍。
考慮到現(xiàn)有技術(shù)中,大都是以解決方案文件為單位生成,即一次生成一個解決方案文件中的項目,如果,需要生成的軟件對應(yīng)多個解決方案文件,這樣,需要進(jìn)行多次生成才能生成完整的軟件,但是,當(dāng)多個解決方案文件中的項目之間存在互相引用關(guān)系時,如果某個解決方案文件中有引用關(guān)系的項目存在改動,再采用上述方式生成軟件時,在生成該解決方案文件中的項目時,可能會仍然采用改動之前的項目進(jìn)行生成,這樣會導(dǎo)致整個軟件生成失敗或者生成報錯?;诖耍景l(fā)明實施方式提供了一種軟件生成方法和裝置,下面通過實施方式進(jìn)行描述。
實施方式1
本發(fā)明實施方式提供了一種軟件生成方法,如圖1所示,該方法包括步驟S110-S140,具體如下。
S110,獲取待生成軟件對應(yīng)的至少一個解決方案文件,該解決方案文件包括多個項目。
上述待生成軟件對應(yīng)的解決方案文件可以是一個,也可以是多個,該解決方案文件可以是XML(Extensible Markup Language,可擴(kuò)展標(biāo)記語言)格式的文件。
當(dāng)開發(fā)人員在進(jìn)行軟件開發(fā)時,可以由多人共同開發(fā),每人負(fù)責(zé)其中幾個項目的開發(fā),這樣,每個人都會將其開發(fā)的項目對應(yīng)的代碼程序?qū)懭胍粋€解決方案文件,這樣,一個軟件就會對應(yīng)多個解決方案文件。
上述各個項目指的是一個軟件中的各個功能模塊。
在本發(fā)明實施方式中,在獲取待生成軟件對應(yīng)的解決方案文件時,可以根據(jù)解決方案文件的后綴批量獲取待生成軟件對應(yīng)的解決方案文件。
S120,確定上述解決方案文件中各個項目之間的引用關(guān)系。
由于每個解決方案文件中會存在多個項目,這些項目之間會有引用關(guān)系,甚至不同解決方案文件之間的項目也會存在引用關(guān)系。比如說,A解決方案文件中存在a1、a2和a3三個項目,則a1、a2和a3這三個項目之間可能存在引用關(guān)系,如果B解決方案文件中存在b1、b2和b3三個項目,則A解決方案文件和B解決方案文件中的項目之間也可能會存在引用關(guān)系,比如項目b1引用項目a1。
上述項目的引用指的是該項目里的代碼程序使用了別的項目里的代碼程序,這時,這兩個項目存在引用關(guān)系,比如說,項目a1中的代碼程序使用了項目b1中的代碼程序,則項目a1引用項目b1,即項目b1就是被引用的項目。
在本發(fā)明實施方式中,如圖2所示,確定該軟件對應(yīng)的所有項目之間的引用關(guān)系,包括步驟S210-S220,具體如下:
S210,根據(jù)項目的標(biāo)識從解決方案文件中獲取各個項目對應(yīng)的項目文件,該項目文件包括項目在解決方案文件中的存儲路徑及項目引用的其他項目;
S220,根據(jù)各個項目引用的其他項目,確定各個項目之間的引用關(guān)系。
上述項目的標(biāo)識可以是項目的名稱。
開發(fā)人員在開發(fā)軟件時,將項目對應(yīng)的代碼程序、該項目在解決方案文件中的存儲路徑以及該項目引用的其它項目生成該項目對應(yīng)的項目文件,存儲在解決方案文件中,在一個解決方案文件中可能存儲有多個項目對應(yīng)的項目文件。
當(dāng)然,在上述項目文件中還可以存儲有該項目生成的輸出配置與路徑。
在本發(fā)明實施方式中,可以根據(jù)項目的標(biāo)識通過正則匹配從解決方案文件中獲取各個項目對應(yīng)的項目文件。
上述項目文件可是XML格式的文件。
當(dāng)從解決方案文件中獲取到各個項目對應(yīng)的項目文件后,根據(jù)各個項目文件中存儲的每個項目引用的其他的項目,可以確定出各個項目之間的引用關(guān)系。
S130,根據(jù)上述項目之間的引用關(guān)系及上述解決方案文件的預(yù)設(shè)順序?qū)ι鲜鲰椖窟M(jìn)行排序,得到項目生成順序列表。
作為一個實施方式,如圖3所示,對上述項目進(jìn)行排序,包括步驟S310-S350,具體如下:
S310,將上述解決方案文件包括的項目組成項目列表。
S320,根據(jù)上述項目之間的引用關(guān)系,將上述項目列表中沒有引用關(guān)系的項目組成第一子項目列表,將上述項目列表中被其他項目引用且沒有引用其他項目的項目組成第二子項目列表,將上述項目列表中引用其他項目的項目組成第三子項目列表;
S330,按照上述解決方案文件的預(yù)設(shè)順序?qū)ι鲜龅谝蛔禹椖苛斜碇械捻椖窟M(jìn)行排序,及按照上述解決方案文件的預(yù)設(shè)順序?qū)ι鲜龅诙禹椖苛斜碇械捻椖窟M(jìn)行排序;
S340,按照被引用優(yōu)先的原則及上述的解決方案文件的預(yù)設(shè)順序?qū)ι鲜龅谌禹椖苛斜碇械捻椖窟M(jìn)行排序;
S350,將上述第三子項目列表排在上述第二子項目列表的后面。
將待生成軟件對應(yīng)的解決方案文件中的所有項目組成一個項目列表,該列表中的項目,有的項目可能沒有引用其他項目,同時也沒有被其他的項目引用,有的項目可能只是被其他項目引用,而沒有引用其他項目,因此,可以將上述所有的項目列表分成三個子項目列表,即第一子項目列表、第二子項目列表和第三子項目列表。
在本發(fā)明實施方式中,將既沒有引用其他項目也沒有被其他項目引用的項目組成第一子項目列表,將只被其他項目引用而沒有引用其他項目的項目組成第二子項目列表,將有引用其他項目的項目組成第三子項目列表。
在進(jìn)行排序時,將第三子項目列表排在第二子項目列表的后面。
而將第一子項目列表置于第二子項目列表的前面,或者,將第一子項目列表置于第二子項目列表的后面。
上述第一子項目列表的具體位置可以根據(jù)實際應(yīng)用進(jìn)行設(shè)置,本發(fā)明實施方式并不對上述第一子項目列表的具體位置進(jìn)行限定。
上述解決方案的預(yù)設(shè)順序可以根據(jù)解決方案文件的名稱確定;
如果上述解決方案文件的名稱為字母,可以根據(jù)字母的順序確定解決方案文件的預(yù)設(shè)順序。
比如說,上述待生成軟件對應(yīng)三個解決方案文件,三個解決方案文件的文件名稱分別為A、B、C,因此,按照字母順序表可以確定出上述解決方案文件的預(yù)設(shè)順序為A解決方案文件、B解決方案文件、C解決方案文件。
當(dāng)然,除此之外,還可以用數(shù)字命令上述解決方案文件,按照數(shù)字的大小順序確定出各個解決方案文件的預(yù)設(shè)順序,當(dāng)然,上述解決方案文件的名稱并不局限于此。
上述被引用優(yōu)先的原則,指的是被引用的項目排在引用該項目的項目的前面。
上述按照解決方案文件的預(yù)設(shè)順序?qū)ι鲜龅谝蛔禹椖苛斜磉M(jìn)行排序,具體包括:確定第一子項目列表中的項目所在的解決方案文件;將上述解決方案文件的預(yù)設(shè)順序確定為第一子項目列表中的項目的排列順序。
比如說,上述第一子項目列表中包括b1和c1兩個項目,項目b1屬于B解決方案文件,項目c1屬于C解決方案文件,而解決方案文件的順序為B解決方案文件排在C解決方案文件的前面,因此,項目b1排在項目c1的前面。
為了詳細(xì)介紹上述項目的排序過程,下面將舉例進(jìn)行說明。
假設(shè)現(xiàn)在有三個解決方案文件,且三個解決方案文件的文件名分別為A、B和C,A解決方案文件中包括三個項目,分別為a1、a2和a3,B解決方案文件中包括三個項目,分別為b1、b2和b3,C解決方案文件中包括三個項目,分別為c1、c2和c3,假設(shè)上述項目a1引用項目b1,項目b2引用項目a2,項目a3引用項目c3,以及在每個解決方案文件內(nèi)部還存在如下引用關(guān)系,項目a3引用項目a2,項目a2引用項目a1,項目b3引用項目b2,項目b2引用項目b1,項目c3引用項目c2,項目c2引用項目c1,現(xiàn)在對上述三個解決方案文件中的所有項目進(jìn)行排序。
首先,將上述三個解決方案文件中的所有項目組成一個項目列表,得到的項目列表為{a1,a2,a3,b1,b2,b3,c1,c2,c3},該項目列表中只是被引用的項目有b1和c1,因此,上述第二子項目列表包括{b1,c1},上述項目集合中不存在沒有引用關(guān)系的項目,因此,第一子項目列表為空,第三子項目列表包括{a1,a2,a3,b2,b3,c2,c3},由于上述第二子項目列表中的項目只是被引用,因此,按照該項目所在解決方案文件的預(yù)設(shè)順序進(jìn)行排序即可,b1在B解決方案文件中,c1在C解決方案文件中,由于解決方案文件的文件名稱為字母,因此按照字母順序?qū)ι鲜鼋鉀Q方案文件進(jìn)行排序即可,可以確定出B解決方案排在C解決方案的前面,因此,項目b1排在項目c1的前面,所以,第二子項目列表的順序為{b1,c1}。按照被引用優(yōu)先以及字母的順序?qū)Φ谌禹椖苛斜碇械捻椖窟M(jìn)行排序,可以得到第三子項目列表的順序為{a1,a2,b2,b3,c2,c3,a3},最后,將排序后的第二子項目列表排在第三子項目列表的前面,確定出上述項目列表的排序為{b1,c1,a1,a2,b2,b3,c2,c3,a3},即為項目生成順序列表。
S140,按照上述項目生成順序列表生成待生成軟件。
當(dāng)確定出待生成軟件對應(yīng)的項目生成順序列表后,將上述項目生成順序列表寫入批處理文件生成待生成軟件。
當(dāng)將項目生成順序列表寫入批處理文件后,項目生成順序列表中的項目按順序運(yùn)行生成軟件。
如果再次生成上述待生成軟件時,如果解決方案文件中的項目之間的引用關(guān)系沒有發(fā)生變化,但是,項目的配置或者編碼有修改,這時不需要將修改后的項目再次寫入批處理文件,直接使用上次生成的批處理文件生成軟件即可。
本發(fā)明實施方式提供了一種軟件生成方法,獲取待生成軟件對應(yīng)的至少一個解決方案文件,將所有解決方案文件中的項目進(jìn)行排序,得到項目生成順序列表,按照該項目生成順利列表的順序生成軟件,這樣將所有解決方案文件中的項目作為整體生成待生成軟件,避免了當(dāng)解決方案文件中的項目存在互相引用關(guān)系時,容易出現(xiàn)軟件生成失敗或者軟件生成報錯的情況的發(fā)生。
實施方式2
本發(fā)明實施方式提供了一種軟件生成裝置,如圖4所示,該裝置包括獲取模塊410、確定模塊420、排序模塊430和生成模塊440;
上述獲取模塊410,用于獲取待生成軟件對應(yīng)的至少一個解決方案文件,該解決方案文件包括多個項目;
上述確定模塊420,用于確定上述解決方案文件中各個項目之間的引用關(guān)系;
上述排序模塊430,用于根據(jù)上述項目之間的引用關(guān)系及解決方案文件的預(yù)設(shè)順序?qū)ι鲜鲰椖窟M(jìn)行排序,得到項目生成順序列表;
上述生成模塊440,用于按照上述項目生成順序列表生成上述待生成軟件。
上述確定模塊420確定上述解決方案文件中各個項目之間的引用關(guān)系是通過獲取單元和第一確定單元實現(xiàn)的,具體包括:
上述獲取單元,用于根據(jù)項目的標(biāo)識從上述解決方案文件中獲取各個項目對應(yīng)的項目文件,該項目文件包括上述項目在解決方案文件中的存儲路徑及上述項目引用的其他項目;上述第一確定單元,用于根據(jù)各個項目引用的其他項目,確定各個上述項目之間的引用關(guān)系。
上述排序模塊430對上述項目進(jìn)行排序是通過第一組成單元、第二組成單元、第一排序單元、第二排序單元和第三排序單元實現(xiàn)的,具體包括:
上述第一組成單元,用于將解決上述解決方案文件包括的項目組成項目列表;上述第二組成單元,用于根據(jù)上述項目之間的引用關(guān)系,將上述項目列表中沒有引用關(guān)系的項目組成第一子項目列表,將上述項目列表中被其他項目引用且沒有引用其他項目的項目組成第二子項目列表,將上述項目列表中引用其他項目的項目組成第三子項目列表;上述第一排序單元,用于按照上述解決方案文件的預(yù)設(shè)順序?qū)ι鲜龅谝蛔禹椖苛斜碇械捻椖窟M(jìn)行排序,及按照上述解決方案文件的預(yù)設(shè)順序?qū)ι鲜龅诙禹椖苛斜碇械捻椖窟M(jìn)行排序;上述第二排序單元,用于按照被引用優(yōu)先的原則及上述解決方案文件的預(yù)設(shè)順序?qū)ι鲜龅谌禹椖苛斜磉M(jìn)行排序;上述第三排序單元,用于將上述第三子項目列表排在上述第二子項目列表的后面。
上述第一排序單元,還用于確定第一子項目列表中的項目所在的解決方案文件;將上述解決方案文件的預(yù)設(shè)順序確定為第一子項目列表中的項目的排列順序。
本發(fā)明實施方式提供的軟件生成裝置,獲取待生成軟件對應(yīng)的至少一個解決方案文件,將所有解決方案文件中的項目進(jìn)行排序,得到項目生成順序列表,按照該項目生成順利列表的順序生成軟件,這樣將所有解決方案文件中的項目作為整體生成待生成軟件,避免了當(dāng)解決方案文件中的項目存在互相引用關(guān)系時,容易出現(xiàn)軟件生成失敗或者軟件生成報錯的情況的發(fā)生。
本發(fā)明實施方式所提供的軟件生成裝置可以為安裝于設(shè)備上的軟件等。本發(fā)明實施方式所提供的裝置,其實現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實施方式相同,為簡要描述,裝置實施方式部分未提及之處,可參考前述方法實施方式中相應(yīng)內(nèi)容。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,前述描述的裝置、模塊和單元的具體工作過程,均可以參考上述方法實施方式中的對應(yīng)過程,在此不再贅述。
在本發(fā)明所提供的實施方式中,應(yīng)該理解到,所揭露裝置和方法,可以通過其他的方式實現(xiàn)。以上所描述的裝置實施方式僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,又例如,多個模塊或單元可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施方式方案的目的。
另外,在本發(fā)明提供的實施方式中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施方式所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋,此外,術(shù)語“第一”、“第二”、“第三”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
最后應(yīng)說明的是:以上所述實施方式,僅為本發(fā)明的具體實施方式,用以說明本發(fā)明的技術(shù)方案,而非對其限制,本發(fā)明的保護(hù)范圍并不局限于此,盡管參照前述實施方式對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),其依然可以對前述實施方式所記載的技術(shù)方案進(jìn)行修改或可輕易想到變化,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改、變化或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實施方式技術(shù)方案的精神和范圍。都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。