本技術(shù)屬于軟件開發(fā)與管理,尤其涉及一種依賴管理方法及相關(guān)裝置。
背景技術(shù):
1、企業(yè)系統(tǒng)中包含了很多第三方組件和企業(yè)內(nèi)部不同部門或相同部門之間提供的軟件組件。大的軟件系統(tǒng)往往會依賴或者間接依賴很多的其他組件,這些組件在需要版本修改、替換時需付出很多溝通成本和監(jiān)督成本進行依賴管理,以通過依賴管理實現(xiàn)對組件的及時檢查更新,如果檢查更新不及時有可能會帶來巨大的損失。
2、目前主流的依賴管理方案有兩種,一種是解開/解析構(gòu)建的最終軟件產(chǎn)品,在最終軟件產(chǎn)品依賴項的目錄中對軟件產(chǎn)品的依賴項進行分析和檢查,以匹配依賴項判斷依賴項所表征的被依賴組件是否需要更新,然而該方案存在依賴匹配/檢查的準(zhǔn)確性低、耗時長等問題。另一種方案是,在軟件產(chǎn)品構(gòu)建完成后將其安裝至本地,并使用依賴樹插件,通過執(zhí)行命令將軟件產(chǎn)品的依賴樹輸出到指定文件中,再對文件進行解析及依賴檢查,該方法雖然解決了依賴無法精準(zhǔn)匹配/檢查的問題,但一樣存在耗時增加的問題。
技術(shù)實現(xiàn)思路
1、有鑒于此,本技術(shù)提供一種依賴管理方法及相關(guān)裝置,以解決已知技術(shù)存在的問題,準(zhǔn)確并高效地進行依賴項的匹配、檢查,避免被依賴組件需修改版本、替換時因檢查更新不及時而導(dǎo)致?lián)p失。
2、具體技術(shù)方案如下:
3、一種依賴管理方法,包括:
4、獲取待檢查的目標(biāo)應(yīng)用對應(yīng)的目標(biāo)依賴信息;所述目標(biāo)依賴信息用于表征所述目標(biāo)應(yīng)用涉及的不同組件之間的目標(biāo)依賴關(guān)系,所述目標(biāo)依賴信息為在構(gòu)建所述目標(biāo)應(yīng)用的過程中通過解析組件之間的依賴關(guān)系而得到;
5、獲取所述目標(biāo)依賴信息中的依賴項對應(yīng)的檢查規(guī)則;所述依賴項用于表征組件所依賴的組件;
6、基于依賴項對應(yīng)的檢查規(guī)則,確定依賴項表征的被依賴組件是否符合版本要求。
7、可選的,在獲取待檢查的目標(biāo)應(yīng)用對應(yīng)的組件依賴信息之前,還包括:
8、在打包構(gòu)建所述目標(biāo)應(yīng)用的過程中,通過解析所述目標(biāo)應(yīng)用的依賴聲明文件,確定所述目標(biāo)應(yīng)用對應(yīng)的依賴樹;
9、其中,所述目標(biāo)依賴信息包括所述依賴樹以樹形結(jié)構(gòu)所組織的不同組件之間的依賴信息。
10、可選的,所述通過解析所述目標(biāo)應(yīng)用的依賴聲明文件,確定所述目標(biāo)應(yīng)用對應(yīng)的依賴樹,包括:
11、解析所述目標(biāo)應(yīng)用的依賴聲明文件,得到解析結(jié)果,所述解析結(jié)果包括所述目標(biāo)應(yīng)用涉及的不同組件之間的原始依賴信息;
12、對所述解析結(jié)果進行合法性校驗,以在所述解析結(jié)果中的相應(yīng)原始依賴信息未通過合法性校驗情況下,基于修正處理將所述相應(yīng)原始依賴信息修正為滿足所述合法性校驗要求的合法性條件,得到所述解析結(jié)果對應(yīng)的滿足所述合法性條件的中間依賴信息;
13、獲取所述中間依賴信息形成的依賴圖;所述依賴圖通過圖結(jié)構(gòu)組織所述中間依賴信息表征的不同組件之間的依賴關(guān)系;
14、對所述依賴圖進行依賴決策處理,以消除所述依賴圖中包含的沖突依賴關(guān)系,得到依賴決策結(jié)果,所述依賴決策結(jié)果用于表征所述目標(biāo)依賴關(guān)系;
15、將所述依賴決策結(jié)果表征的所述目標(biāo)依賴關(guān)系輸出為對應(yīng)的依賴樹。
16、可選的,所述通過解析所述目標(biāo)應(yīng)用的依賴聲明文件,確定所述目標(biāo)應(yīng)用對應(yīng)的依賴樹,包括:
17、在對所述目標(biāo)應(yīng)用各個模塊的代碼編譯階段,基于對軟件項目管理與構(gòu)建工具增強后的編譯邏輯,按所述目標(biāo)應(yīng)用的模塊對所述依賴聲明文件進行解析,得到所述目標(biāo)應(yīng)用各個模塊分別對應(yīng)的依賴決策結(jié)果,將所述目標(biāo)應(yīng)用各個模塊分別對應(yīng)的依賴決策結(jié)果以樹形格式輸出至指定文件;
18、融合所述指定文件中各個模塊分別對應(yīng)的依賴決策結(jié)果,得到所述目標(biāo)應(yīng)用對應(yīng)的依賴樹;其中,每個模塊包括至少一個組件。
19、可選的,所述獲取所述目標(biāo)依賴信息中的依賴項對應(yīng)的檢查規(guī)則,包括:
20、根據(jù)所述目標(biāo)依賴信息中當(dāng)前依賴項的依賴項信息,確定所述當(dāng)前依賴項是否對應(yīng)有相應(yīng)的版本檢查器;所述目標(biāo)依賴信息中的至少部分依賴項分別對應(yīng)相應(yīng)的版本檢查器,每個版本檢查器包含相應(yīng)檢查規(guī)則;
21、若是,調(diào)取所述當(dāng)前依賴項對應(yīng)的版本檢查器。
22、可選的,所述基于依賴項對應(yīng)的檢查規(guī)則,確定依賴項表征的被依賴組件是否符合版本要求,包括:
23、基于所述當(dāng)前依賴項對應(yīng)的版本檢查器提供的檢查規(guī)則,確定所述當(dāng)前依賴項表征的被依賴組件是否符合版本要求。
24、可選的,在基于所述當(dāng)前依賴項對應(yīng)的版本檢查器提供的檢查規(guī)則,確定所述當(dāng)前依賴項表征的被依賴組件是否符合版本要求之前,還包括:
25、檢查所述目標(biāo)應(yīng)用及當(dāng)前環(huán)境是否符合所述當(dāng)前依賴項的版本檢查器對應(yīng)設(shè)置的應(yīng)用和環(huán)境,以在符合情況下,觸發(fā)基于所述當(dāng)前依賴項對應(yīng)的版本檢查器提供的檢查規(guī)則,確定所述當(dāng)前依賴項表征的被依賴組件是否符合版本要求的步驟。
26、可選的,在根據(jù)所述目標(biāo)依賴信息中當(dāng)前依賴項的依賴項信息,確定所述當(dāng)前依賴項是否對應(yīng)有相應(yīng)的版本檢查器之前,還包括:
27、確定所述當(dāng)前依賴項對應(yīng)的依賴坐標(biāo)是否存在于緩存中;
28、若是,則所述當(dāng)前依賴項通過檢查;
29、若否,觸發(fā)根據(jù)所述目標(biāo)依賴信息中當(dāng)前依賴項的依賴項信息,確定所述當(dāng)前依賴項是否對應(yīng)有相應(yīng)的版本檢查器的步驟;
30、其中,所述當(dāng)前依賴項對應(yīng)的依賴坐標(biāo),包括所述當(dāng)前依賴項所表征的被依賴組件對應(yīng)的軟件項目組標(biāo)識、組件標(biāo)識和組件版本標(biāo)識;所述當(dāng)前依賴項的依賴項信息包括所述當(dāng)前依賴項所表征的被依賴組件對應(yīng)的軟件項目組標(biāo)識和組件標(biāo)識;緩存中存放的依賴坐標(biāo),為在對所述目標(biāo)應(yīng)用的依賴檢查過程中,對通過檢查的相應(yīng)依賴項進行依賴坐標(biāo)緩存所得的結(jié)果。
31、一種依賴管理裝置,包括:
32、第一獲取模塊,用于獲取待檢查的目標(biāo)應(yīng)用對應(yīng)的目標(biāo)依賴信息;所述目標(biāo)依賴信息用于表征所述目標(biāo)應(yīng)用涉及的不同組件之間的目標(biāo)依賴關(guān)系,所述目標(biāo)依賴信息為在構(gòu)建所述目標(biāo)應(yīng)用的過程中通過解析組件之間的依賴關(guān)系而得到;
33、第二獲取模塊,用于獲取所述目標(biāo)依賴信息中的依賴項對應(yīng)的檢查規(guī)則;所述依賴項用于表征組件所依賴的組件;
34、檢查模塊,用于基于依賴項對應(yīng)的檢查規(guī)則,確定依賴項表征的被依賴組件是否符合版本要求。
35、一種計算機可讀介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時,能用于實現(xiàn)如上文任一項所述的依賴管理方法。
36、根據(jù)以上方案可知,本技術(shù)提供的依賴管理方法及相關(guān)裝置,在構(gòu)建應(yīng)用的過程中解析得到應(yīng)用的目標(biāo)依賴信息,在此基礎(chǔ)上,當(dāng)需要對應(yīng)用進行依賴管理時,獲取待檢查的目標(biāo)應(yīng)用對應(yīng)的目標(biāo)依賴信息,并獲取目標(biāo)依賴信息中的依賴項對應(yīng)的檢查規(guī)則,進而基于對應(yīng)的檢查規(guī)則,確定依賴項表征的被依賴組件是否符合版本要求。本技術(shù)通過在構(gòu)建應(yīng)用的過程中解析得到應(yīng)用的目標(biāo)依賴信息,可避免解析構(gòu)建的最終軟件產(chǎn)品、無需在最終軟件產(chǎn)品依賴項的目錄中對軟件產(chǎn)品的依賴項進行分析和檢查,從而克服了已知技術(shù)的該依賴管理方式存在的依賴匹配/檢查的準(zhǔn)確性低的問題,同時本技術(shù)無需將待檢查應(yīng)用的組件安裝在本地即可獲得應(yīng)用的目標(biāo)依賴信息,幾乎不增加額外的時間開銷,從而相比于已知技術(shù),本技術(shù)同時降低了依賴匹配/檢查的耗時,提升了匹配/檢查效率。