解決Maven依賴沖突的方法、裝置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種解決Maven依賴沖突的方法、裝置和系統(tǒng),屬于計(jì)算機(jī)通信技術(shù)領(lǐng)域。方法包括:獲取客戶端提交的Maven軟件項(xiàng)目依賴沖突信息;檢索預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫,查找與所述Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端,使得所述客戶端設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。本發(fā)明可以提高解決Maven依賴沖突的準(zhǔn)確性,可以不單依賴于開發(fā)人員的經(jīng)驗(yàn)和水平,提高可靠性。
【專利說明】
解決Maven依賴沖突的方法、裝置和系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計(jì)算機(jī)通信技術(shù)領(lǐng)域,具體涉及一種解決Maven依賴沖突的方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]隨著計(jì)算機(jī)通信技術(shù)的發(fā)展,軟件開發(fā)項(xiàng)目管理工具M(jìn)aven得到了廣泛的應(yīng)用。Maven基于POM(Project Object Model,項(xiàng)目對(duì)象模型)來管理軟件開發(fā)項(xiàng)目的構(gòu)建,POM是Maven對(duì)一個(gè)單一軟件項(xiàng)目的描述,通常以pom.xml文件形式存在。
[0003]當(dāng)一個(gè)軟件項(xiàng)目需要用到另外一個(gè)軟件項(xiàng)目所發(fā)布的開發(fā)包時(shí),需要在一個(gè)軟件項(xiàng)目的POM中描述對(duì)于另外一個(gè)軟件項(xiàng)目的開發(fā)包的依賴關(guān)系,包括版本信息等,這就是Maven依賴。當(dāng)這種依賴關(guān)系變得復(fù)雜之后,對(duì)于開發(fā)包版本上的使用就很容易出現(xiàn)Maven依賴沖突的情況。比如,如圖1所示,軟件項(xiàng)目A分別依賴了軟件項(xiàng)目B的版本為1.0的開發(fā)包和軟件項(xiàng)目C的版本為3.0的開發(fā)包,而軟件項(xiàng)目B的版本為1.0的開發(fā)包依賴了軟件項(xiàng)目D的版本為1.0的開發(fā)包,軟件項(xiàng)目C的版本為3.0的開發(fā)包則依賴了軟件項(xiàng)目D的版本為2.0的開發(fā)包,軟件項(xiàng)目D的開發(fā)包的版本沖突,發(fā)生了 Maven依賴沖突。
[0004]現(xiàn)有解決Maven依賴沖突的方法是:開發(fā)人員人工判斷Maven依賴沖突的原因,然后人工調(diào)試、咨詢、查看相關(guān)文檔進(jìn)行解決。例如:究竟應(yīng)該在軟件項(xiàng)目A中使用D-1.0還是D-2.0,需要開發(fā)人員人工判斷解決。而解決Maven依賴沖突的時(shí)間長短和準(zhǔn)確性,與開發(fā)人員自身的水平以及對(duì)相關(guān)問題的熟悉程度有很大關(guān)系,現(xiàn)有解決Maven依賴沖突的方法依賴于開發(fā)人員的經(jīng)驗(yàn)和水平,可靠性差。
【發(fā)明內(nèi)容】
[0005]為了解決現(xiàn)有技術(shù)的問題,本發(fā)明提供了一種解決Maven依賴沖突的方法、裝置和系統(tǒng),設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案,預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫中存儲(chǔ)的是任一客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,可以提高解決Maven依賴沖突的準(zhǔn)確性,可以不單依賴于開發(fā)人員的經(jīng)驗(yàn)和水平,提高可靠性。
[0006]為了解決上述問題,本發(fā)明公開了一種解決Maven依賴沖突的方法,所述方法包括:
[0007]獲取客戶端提交的Maven軟件項(xiàng)目依賴沖突信息;
[0008]檢索預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫,查找與所述Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;其中,所述Maven依賴沖突解決信息數(shù)據(jù)庫用于存儲(chǔ)任一所述客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論;
[0009]將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端,使得所述客戶端設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。
[0010] 進(jìn)一步地,獲取客戶端提交的Maven軟件項(xiàng)目依賴沖突信息,包括:
[0011 ] 獲取所述客戶端通過Maven指令行工具中的查看指令提交的所述Maven軟件項(xiàng)目依賴沖突信息;或,
[0012]獲取所述客戶端通過Eclipse POM編輯器中的查看界面提交的所述Maven軟件項(xiàng)目依賴沖突信息。
[0013]進(jìn)一步地,當(dāng)所述客戶端設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是從與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案中選擇的時(shí),所述方法還包括:
[0014]獲取所述客戶端提交的Maven依賴沖突解決方案選擇信息;
[0015]對(duì)所述Maven依賴沖突解決信息數(shù)據(jù)庫中的與所述Maven依賴沖突解決方案選擇信息對(duì)應(yīng)的所述Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新。
[0016]進(jìn)一步地,獲取所述客戶端提交的Maven依賴沖突解決方案選擇信息,包括:
[0017]獲取所述客戶端通過Maven指令行工具中的選擇指令提交的所述Maven依賴沖突解決方案選擇信息;或,
[0018]獲取所述客戶端通過Eclipse POM編輯器中的選擇界面提交的所述Maven依賴沖突解決方案選擇信息。
[0019]進(jìn)一步地,當(dāng)所述客戶端設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是所述客戶端重新設(shè)定的時(shí),所述方法還包括:
[0020]獲取所述客戶端提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案;
[0021 ] 將所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案存儲(chǔ)在所述Maven依賴沖突解決信息數(shù)據(jù)庫中。
[0022]進(jìn)一步地,獲取所述客戶端提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案,包括:
[0023]獲取所述客戶端通過Maven指令行工具中的上傳指令提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案;或,
[0024]獲取所述客戶端通過Eclipse POM編輯器中的上傳界面提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。
[0025]進(jìn)一步地,將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端之后,還包括:
[0026]獲取所述客戶端提交的Maven依賴沖突評(píng)論信息;
[0027]將所述Maven依賴沖突評(píng)論信息,添加在所述Maven依賴沖突解決信息數(shù)據(jù)庫中所述Maven依賴沖突評(píng)論信息對(duì)應(yīng)的所述Maven依賴沖突解決方案中。
[0028]進(jìn)一步地,獲取所述客戶端提交的Maven依賴沖突評(píng)論信息,包括:
[0029]獲取所述客戶端通過Maven指令行工具中的評(píng)論指令提交的Maven依賴沖突評(píng)論信息;或,
[0030]獲取所述客戶端通過Eclipse POM編輯器中的查看界面提交的Maven依賴沖突評(píng)論信息。
[0031]進(jìn)一步地,將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端,使得所述客戶端設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案,包括:
[0032]從與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論中,選取滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論;
[0033]將滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端,使得所述客戶端根據(jù)滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論,設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。
[0034]為了解決上述問題,本發(fā)明還公開了一種解決Maven依賴沖突的裝置,所述裝置包括:
[0035]第一獲取模塊,用于獲取客戶端提交的Maven軟件項(xiàng)目依賴沖突信息;
[0036]查找模塊,用于檢索預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫,查找與所述Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;其中,所述Maven依賴沖突解決信息數(shù)據(jù)庫用于存儲(chǔ)任一所述客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論;
[0037]處理模塊,用于將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端,使得所述客戶端設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。
[0038]進(jìn)一步地,所述第一獲取模塊包括:
[0039]第一獲取單元,用于獲取所述客戶端通過Maven指令行工具中的查看指令提交的所述Maven軟件項(xiàng)目依賴沖突信息;或,
[0040]第二獲取單元,用于獲取所述客戶端通過Eclipse POM編輯器中的查看界面提交的所述Maven軟件項(xiàng)目依賴沖突信息。
[0041]進(jìn)一步地,當(dāng)所述客戶端設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是從與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案中選擇的時(shí),所述裝置還包括:
[0042]第二獲取模塊,用于獲取所述客戶端提交的Maven依賴沖突解決方案選擇信息;
[0043]更新模塊,用于對(duì)所述Maven依賴沖突解決信息數(shù)據(jù)庫中的與所述Maven依賴沖突解決方案選擇信息對(duì)應(yīng)的所述Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新。
[0044]進(jìn)一步地,所述第二獲取模塊包括:
[0045]第三獲取單元,用于獲取所述客戶端通過Maven指令行工具中的選擇指令提交的所述Maven依賴沖突解決方案選擇信息;或,
[0046]第四獲取單元,用于獲取所述客戶端通過Eclipse POM編輯器中的選擇界面提交的所述Maven依賴沖突解決方案選擇信息。
[0047]進(jìn)一步地,當(dāng)所述客戶端設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是所述客戶端重新設(shè)定的時(shí),所述裝置還包括:
[0048]第三獲取模塊,用于獲取所述客戶端提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案;
[0049]第一存儲(chǔ)模塊,用于將所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案存儲(chǔ)在所述Maven依賴沖突解決信息數(shù)據(jù)庫中。
[0050]進(jìn)一步地,所述第三獲取模塊包括:
[0051]第五獲取單元,用于獲取所述客戶端通過Maven指令行工具中的上傳指令提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案;或,
[0052]第六獲取單元,用于獲取所述客戶端通過Eclipse POM編輯器中的上傳界面提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。
[0053]進(jìn)一步地,所述裝置還包括:
[0054]第四獲取模塊,用于在所述處理模塊將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端之后,獲取所述客戶端提交的Maven依賴沖突評(píng)論信息;
[0055]第二存儲(chǔ)模塊,用于將所述Maven依賴沖突評(píng)論信息,添加在所述Maven依賴沖突解決信息數(shù)據(jù)庫中所述Maven依賴沖突評(píng)論信息對(duì)應(yīng)的所述Maven依賴沖突解決方案中。
[0056]進(jìn)一步地,所述第四獲取模塊包括:
[0057]第七獲取單元,用于獲取所述客戶端通過Maven指令行工具中的評(píng)論指令提交的Maven依賴沖突評(píng)論信息;或,
[0058]第八獲取單元,用于獲取所述客戶端通過Eclipse POM編輯器中的查看界面提交的Maven依賴沖突評(píng)論信息。
[0059]進(jìn)一步地,所述處理模塊包括:
[0060]選取單元,用于從與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論中,選取滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論;
[0061]返回單元,用于將滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端,使得所述客戶端根據(jù)滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論,設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。
[0062]為了解決上述問題,本發(fā)明還公開了一種解決Maven依賴沖突的系統(tǒng),所述系統(tǒng)包括:
[0063]客戶端、Maven依賴沖突共享服務(wù)器和Maven依賴沖突解決信息數(shù)據(jù)庫;
[0064]其中,所述Maven依賴沖突解決信息數(shù)據(jù)庫,用于存儲(chǔ)任一所述客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;
[0065]所述客戶端包括:第一提交模塊,用于向所述Maven依賴沖突共享服務(wù)器提交Maven軟件項(xiàng)目依賴沖突信息;
[0066]所述Maven依賴沖突共享服務(wù)器包括:第一獲取模塊,用于獲取所述客戶端提交的所述Maven軟件項(xiàng)目依賴沖突信息;
[0067]查找模塊,用于檢索所述Maven依賴沖突解決信息數(shù)據(jù)庫,查找與所述Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;
[0068]處理模塊,用于將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端;
[0069]相應(yīng)地,所述客戶端還包括:設(shè)定模塊,用于設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。
[0070]進(jìn)一步地,當(dāng)所述設(shè)定模塊設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是從與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案中選擇的時(shí),所述客戶端還包括:
[0071]第二提交模塊,用于向所述Maven依賴沖突共享服務(wù)器提交Maven依賴沖突解決方案選擇信息;
[0072]相應(yīng)地,所述Maven依賴沖突共享服務(wù)器還包括:
[0073]第二獲取模塊,用于獲取所述客戶端提交的Maven依賴沖突解決方案選擇信息;
[0074]更新模塊,用于對(duì)所述Maven依賴沖突解決信息數(shù)據(jù)庫中的與所述Maven依賴沖突解決方案選擇信息對(duì)應(yīng)的所述Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新。
[0075]進(jìn)一步地,當(dāng)所述客戶端設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是所述客戶端重新設(shè)定的時(shí),所述客戶端還包括:
[0076]第三提交模塊,用于向所述Maven依賴沖突共享服務(wù)器提交所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案;
[0077]相應(yīng)地,所述Maven依賴沖突共享服務(wù)器還包括:
[0078]第三獲取模塊,用于獲取所述客戶端提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案;
[0079]第一存儲(chǔ)模塊,用于將所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案存儲(chǔ)在所述Maven依賴沖突解決信息數(shù)據(jù)庫中。
[0080]進(jìn)一步地,所述客戶端還包括:
[0081]第四提交模塊,用于在所述處理模塊將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端之后,向所述Maven依賴沖突共享服務(wù)器提交Maven依賴沖突評(píng)論信息;
[0082]相應(yīng)地,所述Maven依賴沖突共享服務(wù)器還包括:
[0083]第四獲取模塊,用于獲取所述客戶端提交的Maven依賴沖突評(píng)論信息;
[0084]第二存儲(chǔ)模塊,用于將所述Maven依賴沖突評(píng)論信息,添加在所述Maven依賴沖突解決信息數(shù)據(jù)庫中所述Maven依賴沖突評(píng)論信息對(duì)應(yīng)的所述Maven依賴沖突解決方案中。
[0085]與現(xiàn)有技術(shù)相比,本發(fā)明可以獲得包括以下技術(shù)效果:
[0086]I)檢索預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫,查找與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端,使得客戶端根據(jù)與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案,預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫中存儲(chǔ)的是任一客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,可以提高解決Maven依賴沖突的準(zhǔn)確性,可以不單依賴于開發(fā)人員的經(jīng)驗(yàn)和水平,提高可靠性。
[0087]2)可以根據(jù)Maven依賴沖突解決方案選擇信息,對(duì)Maven依賴沖突解決信息數(shù)據(jù)庫中的Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新,提高M(jìn)aven依賴沖突解決信息數(shù)據(jù)庫中的信息的準(zhǔn)確性,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性。
[0088]3)可以將客戶端重新設(shè)定的Maven依賴沖突解決方案存儲(chǔ)在Maven依賴沖突解決信息數(shù)據(jù)庫中,增加Maven依賴沖突解決信息數(shù)據(jù)庫中的信息量,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性。
[0089]4)可以將Maven依賴沖突評(píng)論信息,添加在Maven依賴沖突解決信息數(shù)據(jù)庫中,提高M(jìn)aven依賴沖突解決信息數(shù)據(jù)庫中的信息的準(zhǔn)確性,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性。
[0090]5)可以通過Maven指令行工具或Eclipse POM編輯器進(jìn)行相關(guān)信息的提交,方便快捷。
[0091]當(dāng)然,實(shí)施本發(fā)明的任一產(chǎn)品必不一定需要同時(shí)達(dá)到以上所述的所有技術(shù)效果。
【附圖說明】
[0092]此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
[0093]圖1是本發(fā)明實(shí)施例的一種Maven依賴沖突的示意圖;
[0094]圖2是本發(fā)明實(shí)施例的第一種解決Maven依賴沖突的方法流程圖;
[0095]圖3是本發(fā)明實(shí)施例的另一種Maven依賴沖突的示意圖;
[0096]圖4是本發(fā)明實(shí)施例的第二種解決Maven依賴沖突的方法流程圖;
[0097]圖5是本發(fā)明實(shí)施例的第三種解決Maven依賴沖突的方法流程圖;
[0098]圖6是本發(fā)明實(shí)施例的第四種解決Maven依賴沖突的方法流程圖;
[0099]圖7是本發(fā)明實(shí)施例的第五種解決Maven依賴沖突的方法流程圖;
[0100]圖8是本發(fā)明實(shí)施例的第一種解決Maven依賴沖突的裝置結(jié)構(gòu)示意圖;
[0101]圖9是本發(fā)明實(shí)施例的第二種解決Maven依賴沖突的裝置結(jié)構(gòu)示意圖;
[0102]圖10是本發(fā)明實(shí)施例的第三種解決Maven依賴沖突的裝置結(jié)構(gòu)示意圖;
[0103]圖11是本發(fā)明實(shí)施例的第四種解決Maven依賴沖突的裝置結(jié)構(gòu)示意圖;
[0104]圖12是本發(fā)明實(shí)施例的第一種解決Maven依賴沖突的系統(tǒng)結(jié)構(gòu)示意圖;
[0105]圖13是本發(fā)明實(shí)施例的第二種解決Maven依賴沖突的系統(tǒng)結(jié)構(gòu)示意圖;
[0106]圖14是本發(fā)明實(shí)施例的第三種解決Maven依賴沖突的系統(tǒng)結(jié)構(gòu)示意圖;
[0107]圖15是本發(fā)明實(shí)施例的第四種解決Maven依賴沖突的系統(tǒng)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0108]以下將配合附圖及實(shí)施例來詳細(xì)說明本發(fā)明的實(shí)施方式,藉此對(duì)本發(fā)明如何應(yīng)用技術(shù)手段來解決技術(shù)問題并達(dá)成技術(shù)功效的實(shí)現(xiàn)過程能充分理解并據(jù)以實(shí)施。
[0109]在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
[0110]內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
[0111]計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
[0112]如在說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會(huì)用不同名詞來稱呼同一個(gè)組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)則。如在通篇說明書及權(quán)利要求當(dāng)中所提及的“包含”為一開放式用語,故應(yīng)解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮盏恼`差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述技術(shù)問題,基本達(dá)到所述技術(shù)效果。此外,“耦接”一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述第一裝置可直接電性耦接于所述第二裝置,或通過其他裝置或耦接手段間接地電性耦接至所述第二裝置。說明書后續(xù)描述為實(shí)施本發(fā)明的較佳實(shí)施方式,然所述描述乃以說明本發(fā)明的一般原則為目的,并非用以限定本發(fā)明的范圍。本發(fā)明的保護(hù)范圍當(dāng)視所附權(quán)利要求所界定者為準(zhǔn)。
[0113]還需要說明的是,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的商品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種商品或者系統(tǒng)所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的商品或者系統(tǒng)中還存在另外的相同要素。
[0114]實(shí)施例描沐
[0115]下面以一實(shí)施例對(duì)本發(fā)明方法的實(shí)現(xiàn)作進(jìn)一步說明。如圖2所示,為本發(fā)明實(shí)施例的一種解決Maven依賴沖突的方法流程圖,該方法包括:
[0116]SlOl:獲取客戶端提交的Maven軟件項(xiàng)目依賴沖突信息。
[0117]其中,Maven軟件項(xiàng)目依賴沖突信息包括Maven依賴沖突點(diǎn)、Maven依賴關(guān)系等信息。
[0118]例如:參見圖3,對(duì)于圖3中的Maven依賴沖突點(diǎn),客戶端提交的Maven軟件項(xiàng)目依賴沖突信息大致如下:
[0119]{
[0120]Conflict: D
[0121]Related:
[0122] [
[0123]{source:Al.0,target:D2.0},
[0124]{source:Bl.0,target:D1.0},
[0125]{source: C3.0, target:D3.0}
[0126]]
[0127]}
[0128]具體地,客戶端提交Maven軟件項(xiàng)目依賴沖突信息時(shí),可以通過Maven指令行工具中的查看指令提交,或通過Eclipse POM編輯器中的查看界面提交等。
[0129]其中,Maven指令行工具是使用最廣泛的Maven客戶端,可以很方便的在Windows和Linux等操作系統(tǒng)下以指令行的方式執(zhí)行各種Maven指令。Maven指令行工具可以通過插件方式進(jìn)行擴(kuò)展。在Maven插件擴(kuò)展中,需要繼承并實(shí)現(xiàn)Mojo對(duì)象,規(guī)定好該Mojo對(duì)象接收的指令格式和參數(shù),這樣,在Maven指令行輸入指令時(shí)即可調(diào)用該Mojo對(duì)象。在本實(shí)施例中,擴(kuò)展的插件名稱為ConflictAdviser,相應(yīng)的Mojo對(duì)象的名稱為Conf IictAdviserMo jo。本實(shí)施例中Conf IictAdviser提供了四種指令:show (查看指令)/choose (選擇指令)/comment (評(píng)論指令)/upload (上傳指令)分別用于Maven依賴沖突解決方案的查看、選擇、評(píng)論和上傳。Maven指令行工具中客戶端提交Maven軟件項(xiàng)目依賴沖突信息(即分析當(dāng)前Maven軟件項(xiàng)目的pom的Maven依賴沖突點(diǎn),并查看已有Maven依賴沖突解決方案)的指令為:>mvn conflictadviser: showo
[0130]其中,Maven指令行工具由于UI (用戶界面)方面的局限,在交互上會(huì)比較復(fù)雜。而Eclipse POM編輯器在交互方面會(huì)方便許多,而且也是開發(fā)人員廣泛使用的Maven IDE工具,因此,在本實(shí)施例中,也會(huì)對(duì)Eclipse POM編輯器進(jìn)行擴(kuò)展,以可視化的方式實(shí)現(xiàn)對(duì)Maven依賴沖突解決方案的分享與評(píng)價(jià)??梢栽贓clipse POM編輯器源碼的基礎(chǔ)之上進(jìn)行擴(kuò)展,通過查看界面、選擇界面、評(píng)論界面和上傳界面以可視化操作的方式實(shí)現(xiàn)Maven依賴沖突解決方案的查看、選擇、評(píng)論和上傳。
[0131]從而,獲取客戶端提交的Maven軟件項(xiàng)目依賴沖突信息,包括:
[0132]獲取客戶端通過Maven指令行工具中的查看指令提交的Maven軟件項(xiàng)目依賴沖突信息;或,
[0133]獲取客戶端通過Eclipse POM編輯器中的查看界面提交的Maven軟件項(xiàng)目依賴沖突ig息。
[0134]需要說明的是,客戶端提交Maven軟件項(xiàng)目依賴沖突信息時(shí),可以采用同步方式、也可以采用異步方式,此處優(yōu)先選用同步方式。
[0135]S102:檢索預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫,查找與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論。
[0136]其中,Maven依賴沖突解決信息數(shù)據(jù)庫用于存儲(chǔ)任一客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論。
[0137]具體地,查找與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論時(shí),可以先查找與Maven軟件項(xiàng)目依賴沖突信息完全相同的Maven依賴沖突點(diǎn)對(duì)應(yīng)的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,然后查找與Maven軟件項(xiàng)目依賴沖突信息相近的Maven依賴沖突點(diǎn)對(duì)應(yīng)的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,例如:對(duì)于圖3中的Maven依賴沖突點(diǎn),先查找與圖3中的Maven依賴沖突點(diǎn)突完全相同的Maven依賴沖突點(diǎn)對(duì)應(yīng)的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,然后查找與圖3中的Maven依賴沖突點(diǎn)相近的Maven依賴沖突點(diǎn)對(duì)應(yīng)的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,如僅有Al.0和B1.0而無C3.0的情況。
[0138]S103:將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端,使得客戶端根據(jù)與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案。
[0139]其中,Maven依賴沖突解決方案包括:
[0140]DMaven依賴沖突元描述(系統(tǒng)將根據(jù)Maven依賴沖突元描述來進(jìn)行依賴沖突的匹配);2)目前遭遇該Maven依賴沖突問題的人數(shù);3)針對(duì)該Maven依賴沖突,目前選擇比例最高的Maven依賴沖突解決方案及其選擇比例;4)Maven依賴沖突解決方案描述(結(jié)構(gòu)化說明最終使用了哪個(gè)版本的包);5)Maven依賴沖突解決方案提供人;6)Maven依賴沖突解決方案的提供時(shí)間;7)Maven依賴沖突解決方案說明(非結(jié)構(gòu)化說明,解釋為何采用這種方案,如果是相關(guān)開發(fā)包的owner,可以額外說明,以增加該Maven依賴沖突解決方案的可信度);8)該Maven依賴沖突解決方案的選擇比例等。
[0141]其中,Maven依賴沖突評(píng)論包括:評(píng)論(其他客戶端對(duì)該Maven依賴沖突解決方案的評(píng)論意見)、選擇理由等。
[0142]具體地,當(dāng)客戶端通過在Maven指令行工具中輸入查看指令(>mvnconflictadviser: show)提交Maven軟件項(xiàng)目依賴沖突信息時(shí),將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端,相應(yīng)的返回結(jié)果示意如下(對(duì)應(yīng)圖3的情況):
[0143][INFO]Building testa Maven Webapp
[0144][INFO]task-segment:[conflictadviser]
[0145][INFO]---------------------------------------------------------------
[0146][INFO] [1.Conflict on:com.alibaba.testd:test-d]
[0147][INFO] [summary:519guys met this conlict1n, 96% followed Advice 2]
[0148][INFO][####conflict1n informat1n####]
[0149][INFO]com.alibaba.testa:test~a:war: 1.0-SNAPSH0T
[0150][INFO]+--com.alibaba.testd:test-d:jar:2.0:compile
[0151][INFO]+--com.alibaba.testb:test—b: jar:1.0: compile
[0152][INFO]I+—com.alibaba.testd:test-d:jar:1.0:compile
[0153][INFO]+--com.alibaba.teste:test—c: jar:3.0: compile
[0154][INFO]I+—com.alibaba.testd:test-d:jar:3.0:compile
[0155][INFO][####display advices####]
[0156][INFO] = = = = = Advice I (4% followed this advice) = = = =
[0157][INFO]provider:zhangsan.zs(repulat1n:34)
[0158][INFO]advice:com.alibaba.testd:test-d:3.0
[0159][INFO]time:2014-03-05
[0160][INFO]words from provider:none
[0161][INFO] = = = = = Advice 2 (96% followed this advice) = = = =
[0162][INF0]provider:tanjie.tj(repulat1n:865)
[0163][INFO]advice:com.alibaba.testd: test-d:2.0
[0164][INFO]time:2014-04-12
[0165][INFO] words from provider: test_d2.0 完全兼容 1.0,3.0 不完全兼容 2.0 ;而test_c3.0沒有用到test_d3.0任何新特性,選擇test_d3.0的話可能遭遇運(yùn)行時(shí)ClassNotFound 異常。
[0166][INF0]---------------------------------------------------------------
[0167][INFO] [2.Conflict on:com.alibaba.teste:test~e]
[0168]......
[0169]由返回的結(jié)果可以直觀的看到目前Maven軟件項(xiàng)目中存在的所有Maven依賴沖突點(diǎn)及Maven依賴沖突解決方案。其中,針對(duì)test_d.jar的沖突點(diǎn),96%的人選擇了 Advice2 (使用test-d-2.0.jar),此外,該Maven依賴沖突解決方案的提供者還給出了詳細(xì)說明。在這種情況下,可以相信Advice 2是正確的選擇,客戶端可以設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案是Advice 2(使用test_d_2.0.jar)。從而開發(fā)人員可以省去很多判斷的時(shí)間,也可以最大程度地防止誤判的出現(xiàn)。此外,如上面所示,Maven依賴沖突解決方案的提供者還可以賺取名聲積分(repulat1n),上傳的Maven依賴沖突解決方案越多,選擇這些Maven依賴沖突解決方案的人越多,Maven依賴沖突解決方案的提供者的名聲積分也就越高。從而在后續(xù)選擇中,可以根據(jù)Maven依賴沖突解決方案的提供者的名聲積分來判斷其提供的Maven依賴沖突解決方案的可行性。
[0170]>mvn conflictadviser: show是最簡單的提交Maven軟件項(xiàng)目依賴沖突信息(即查看Maven依賴沖突解決方案)的指令方式,還可以設(shè)置一些選項(xiàng)以便更方便地顯示Maven依賴沖突解決方案的相關(guān)信息,例如:>mvnconflictadviser: show-Dconfliction = com.alibaba.testd: test-d-Dshowcomments = true,-Dconflict1n 選項(xiàng)表不只打印當(dāng)前項(xiàng)目中發(fā)生在test-d上面的Maven依賴沖突點(diǎn)和Maven依賴沖突解決方案,而選項(xiàng)-Dshowcomments則表示不僅打印Maven依賴沖突解決方案的選擇比例,還打印其他人員對(duì)各個(gè)Maven依賴沖突解決方案的評(píng)論(可以由Maven依賴沖突共享服務(wù)器根據(jù)規(guī)則設(shè)置進(jìn)行自動(dòng)過濾篩選)。
[0171]具體地,參見圖4,在一優(yōu)選的實(shí)施例中,當(dāng)客戶端設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案是從與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案中選擇的時(shí),該方法還包括:
[0172]S201:獲取客戶端提交的Maven依賴沖突解決方案選擇信息。
[0173]具體地,客戶端提交Maven依賴沖突解決方案選擇信息時(shí),可以通過Maven指令行工具中的選擇指令(>mvn conflictadviser: choose)提交,或通過Eclipse POM編輯器中的選擇界面提交等。例如:mvn conflictadviser:choose-Dconflict1n = com.alibaba.testd: test-d-Dchoice = 2,表明選擇的是第2個(gè)Maven依賴沖突解決方案。
[0174]從而,獲取客戶端提交的Maven依賴沖突解決方案選擇信息,包括:
[0175]獲取客戶端通過Maven指令行工具中的選擇指令提交的Maven依賴沖突解決方案選擇信息;或,
[0176]獲取客戶端通過Eclipse POM編輯器中的選擇界面提交的Maven依賴沖突解決方案選擇信息。
[0177]需要說明的是,客戶端提交Maven依賴沖突解決方案選擇信息時(shí),可以采用同步方式、也可以采用異步方式,此處優(yōu)先選用異步方式。
[0178]S202:對(duì)Maven依賴沖突解決信息數(shù)據(jù)庫中的與Maven依賴沖突解決方案選擇信息對(duì)應(yīng)的Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新。
[0179]具體地,參見圖5,在一優(yōu)選的實(shí)施例中,當(dāng)客戶端設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案是客戶端重新設(shè)定的時(shí),該方法還包括:
[0180]S301:獲取客戶端提交的客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案。
[0181]具體地,客戶端提交客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案時(shí),可以通過Maven指令行工具中的上傳指令(>mvnconflictadviser:upload)提交,或通過Eclipse POM編輯器中的上傳界面提交等。在提交客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案時(shí),還可以指定Maven依賴沖突點(diǎn),Maven依賴沖突解決方案的提供者姓名,建議選擇版本,以及建議說明等,例如:>mvn conflictadviser:upload-Dconflict1n=com.alibaba.testd:test-d-Dprovider = tanjie.tj-Dadvice = com.alibaba.testd: test-d:2.0-Dwords = “2.0 完全兼容 1.0,3.0 不完全兼容 2.0”。
[0182]從而,獲取客戶端提交的客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案,包括:
[0183]獲取客戶端通過Maven指令行工具中的上傳指令提交的客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案;或,
[0184]獲取客戶端通過Eclipse POM編輯器中的上傳界面提交的客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案。
[0185]需要說明的是,客戶端提交客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案時(shí),可以采用同步方式、也可以采用異步方式,此處優(yōu)先選用異步方式。
[0186]S302:將客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案存儲(chǔ)在Maven依賴沖突解決信息數(shù)據(jù)庫中。
[0187]具體地,將客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案存儲(chǔ)在Maven依賴沖突解決信息數(shù)據(jù)庫中時(shí),具體包括:判斷Maven依賴沖突解決信息數(shù)據(jù)庫中是否已存在與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突點(diǎn),如果已存在,則將與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案添加到與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突點(diǎn)中;如果沒有存在,則在Maven依賴沖突解決信息數(shù)據(jù)庫中設(shè)置與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突點(diǎn),將與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案添加到設(shè)置的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突點(diǎn)中。
[0188]具體地,參見圖6,在一優(yōu)選的實(shí)施例中,將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端之后,還包括:
[0189]S401:獲取客戶端提交的Maven依賴沖突評(píng)論信息。
[0190]具體地,客戶端提交Maven依賴沖突評(píng)論信息時(shí),可以通過Maven指令行工具中的評(píng)論指令(>mvn conflictadviser: comment)提交,或通過Eclipse POM編輯器中的評(píng)論界面提交等。對(duì)現(xiàn)有解決方案進(jìn)行評(píng)論需要指定沖突以及選擇的方案,并進(jìn)行評(píng)論。例如:>mvn conflictadviser:comment—Dconflict1n = com.alibaba.testd:test-d-Dchoice=1-Dcomment = “該Maven依賴沖突解決方案建議使用3.0,在運(yùn)行時(shí)遭遇異常錯(cuò)誤”。
[0191]從而,獲取客戶端提交的Maven依賴沖突評(píng)論信息,包括:
[0192]獲取客戶端通過Maven指令行工具中的評(píng)論指令提交的Maven依賴沖突評(píng)論信息;或,
[0193]獲取客戶端通過Eclipse POM編輯器中的查看界面提交的Maven依賴沖突評(píng)論信息。
[0194]需要說明的是,客戶端提交Maven依賴沖突評(píng)論信息時(shí),可以采用同步方式、也可以采用異步方式,此處優(yōu)先選用異步方式。
[0195]S402:將Maven依賴沖突評(píng)論信息,添加在Maven依賴沖突解決信息數(shù)據(jù)庫中Maven依賴沖突評(píng)論信息對(duì)應(yīng)的Maven依賴沖突解決方案中。
[0196]具體地,與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論可能會(huì)有很多,為了快速方便地將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端,可以先行篩選,從中選取滿足預(yù)設(shè)推送條件的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,因此,參見圖7,在一優(yōu)選的實(shí)施例中,將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端,使得客戶端根據(jù)與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案,可以包括:
[0197]S501:從與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論中,選取滿足預(yù)設(shè)推送條件的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論。
[0198]S502:將滿足預(yù)設(shè)推送條件的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端,使得客戶端根據(jù)滿足預(yù)設(shè)推送條件的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案。
[0199]本發(fā)明實(shí)施例所述的解決Maven依賴沖突的方法,檢索預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫,查找與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端,使得客戶端根據(jù)與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案,預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫中存儲(chǔ)的是任一客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,可以提高解決Maven依賴沖突的準(zhǔn)確性,可以不單依賴于開發(fā)人員的經(jīng)驗(yàn)和水平,提高可靠性??梢愿鶕?jù)Maven依賴沖突解決方案選擇信息,對(duì)Maven依賴沖突解決信息數(shù)據(jù)庫中的Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新,提高M(jìn)aven依賴沖突解決信息數(shù)據(jù)庫中的信息的準(zhǔn)確性,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性??梢詫⒖蛻舳酥匦略O(shè)定的Maven依賴沖突解決方案存儲(chǔ)在Maven依賴沖突解決信息數(shù)據(jù)庫中,增加Maven依賴沖突解決信息數(shù)據(jù)庫中的信息量,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性??梢詫aven依賴沖突評(píng)論信息,添加在Maven依賴沖突解決信息數(shù)據(jù)庫中,提高M(jìn)aven依賴沖突解決信息數(shù)據(jù)庫中的信息的準(zhǔn)確性,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性??梢酝ㄟ^Maven指令行工具或Eclipse POM編輯器進(jìn)行相關(guān)信息的提交,方便快捷。
[0200]如圖8所示,是本發(fā)明實(shí)施例的一種解決Maven依賴沖突的裝置結(jié)構(gòu)圖,該裝置包括:
[0201]第一獲取模塊601,用于獲取客戶端提交的Maven軟件項(xiàng)目依賴沖突信息;
[0202]查找模塊602,用于檢索預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫,查找與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;其中,Maven依賴沖突解決信息數(shù)據(jù)庫用于存儲(chǔ)任一客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;
[0203]處理模塊603,用于將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端,使得客戶端根據(jù)與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案。
[0204]進(jìn)一步地,第一獲取模塊601包括:
[0205]第一獲取單元,用于獲取客戶端通過Maven指令行工具中的查看指令提交的Maven軟件項(xiàng)目依賴沖突信息;或,
[0206]第二獲取單元,用于獲取客戶端通過Eclipse POM編輯器中的查看界面提交的Maven軟件項(xiàng)目依賴沖突信息。
[0207]進(jìn)一步地,當(dāng)客戶端設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案是從與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案中選擇的時(shí),參見圖9,該裝置還包括:
[0208]第二獲取模塊604,用于獲取客戶端提交的Maven依賴沖突解決方案選擇信息;
[0209]更新模塊605,用于對(duì)Maven依賴沖突解決信息數(shù)據(jù)庫中的與Maven依賴沖突解決方案選擇信息對(duì)應(yīng)的Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新。
[0210]進(jìn)一步地,第二獲取模塊604包括:
[0211]第三獲取單元,用于獲取客戶端通過Maven指令行工具中的選擇指令提交的Maven依賴沖突解決方案選擇信息;或,
[0212]第四獲取單元,用于獲取客戶端通過Eclipse POM編輯器中的選擇界面提交的Maven依賴沖突解決方案選擇信息。
[0213]進(jìn)一步地,當(dāng)客戶端設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案是客戶端重新設(shè)定的時(shí),參見圖10,該裝置還包括:
[0214]第三獲取模塊606,用于獲取客戶端提交的客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案;
[0215]第一存儲(chǔ)模塊607,用于將客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案存儲(chǔ)在Maven依賴沖突解決信息數(shù)據(jù)庫中。
[0216]進(jìn)一步地,第三獲取模塊606包括:
[0217]第五獲取單元,用于獲取客戶端通過Maven指令行工具中的上傳指令提交的客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案;或,
[0218]第六獲取單元,用于獲取客戶端通過Eclipse POM編輯器中的上傳界面提交的客戶端重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案。
[0219]進(jìn)一步地,參見圖11,該裝置還包括:
[0220]第四獲取模塊608,用于在處理模塊603將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端之后,獲取客戶端提交的Maven依賴沖突評(píng)論信息;
[0221]第二存儲(chǔ)模塊609,用于將Maven依賴沖突評(píng)論信息,添加在Maven依賴沖突解決信息數(shù)據(jù)庫中Maven依賴沖突評(píng)論信息對(duì)應(yīng)的Maven依賴沖突解決方案中。
[0222]進(jìn)一步地,第四獲取模塊608包括:
[0223]第七獲取單元,用于獲取客戶端通過Maven指令行工具中的評(píng)論指令提交的Maven依賴沖突評(píng)論信息;或,
[0224]第八獲取單元,用于獲取客戶端通過Eclipse POM編輯器中的查看界面提交的Maven依賴沖突評(píng)論信息。
[0225]進(jìn)一步地,處理模塊603包括:
[0226]選取單元,用于從與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論中,選取滿足預(yù)設(shè)推送條件的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;
[0227]返回單元,用于將滿足預(yù)設(shè)推送條件的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端,使得客戶端根據(jù)滿足預(yù)設(shè)推送條件的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案。
[0228]本發(fā)明實(shí)施例所述的解決Maven依賴沖突的裝置,檢索預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫,查找與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端,使得客戶端根據(jù)與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案,預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫中存儲(chǔ)的是任一客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,可以提高解決Maven依賴沖突的準(zhǔn)確性,可以不單依賴于開發(fā)人員的經(jīng)驗(yàn)和水平,提高可靠性??梢愿鶕?jù)Maven依賴沖突解決方案選擇信息,對(duì)Maven依賴沖突解決信息數(shù)據(jù)庫中的Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新,提高M(jìn)aven依賴沖突解決信息數(shù)據(jù)庫中的信息的準(zhǔn)確性,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性。可以將客戶端重新設(shè)定的Maven依賴沖突解決方案存儲(chǔ)在Maven依賴沖突解決信息數(shù)據(jù)庫中,增加Maven依賴沖突解決信息數(shù)據(jù)庫中的信息量,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性??梢詫aven依賴沖突評(píng)論信息,添加在Maven依賴沖突解決信息數(shù)據(jù)庫中,提高M(jìn)aven依賴沖突解決信息數(shù)據(jù)庫中的信息的準(zhǔn)確性,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性??梢酝ㄟ^Maven指令行工具或Eclipse POM編輯器進(jìn)行相關(guān)信息的提交,方便快捷。
[0229]如圖12所示,是本發(fā)明實(shí)施例的一種解決Maven依賴沖突的系統(tǒng)結(jié)構(gòu)圖,該系統(tǒng)包括:
[0230]客戶端70、Maven依賴沖突共享服務(wù)器80和Maven依賴沖突解決信息數(shù)據(jù)庫90 ;
[0231]其中,Maven依賴沖突解決信息數(shù)據(jù)庫90,用于存儲(chǔ)任一客戶端70在解決Maven軟件項(xiàng)目依賴沖突過程中提交的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;
[0232]客戶端70包括:第一提交模塊701,用于向Maven依賴沖突共享服務(wù)器80提交Maven軟件項(xiàng)目依賴沖突信息;
[0233]Maven依賴沖突共享服務(wù)器80包括:第一獲取模塊801,用于獲取客戶端70提交的Maven軟件項(xiàng)目依賴沖突信息;
[0234]查找模塊802,用于檢索Maven依賴沖突解決信息數(shù)據(jù)庫90,查找與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;
[0235]處理模塊803,用于將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端70 ;
[0236]相應(yīng)地,客戶端70還包括:設(shè)定模塊702,用于根據(jù)與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案。
[0237]進(jìn)一步地,當(dāng)設(shè)定模塊702設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案是從與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案中選擇的時(shí),參見圖13,客戶端70還包括:
[0238]第二提交模塊703,用于向Maven依賴沖突共享服務(wù)器80提交Maven依賴沖突解決方案選擇信息;
[0239]相應(yīng)地,Maven依賴沖突共享服務(wù)器80還包括:
[0240]第二獲取模塊804,用于獲取客戶端70提交的Maven依賴沖突解決方案選擇信息;
[0241]更新模塊805,用于對(duì)Maven依賴沖突解決信息數(shù)據(jù)庫90中的與Maven依賴沖突解決方案選擇信息對(duì)應(yīng)的Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新。
[0242]進(jìn)一步地,當(dāng)客戶端70設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案是客戶端70重新設(shè)定的時(shí),參見圖14,客戶端70還包括:
[0243]第三提交模塊704,用于向Maven依賴沖突共享服務(wù)器80提交客戶端70重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案;
[0244]相應(yīng)地,Maven依賴沖突共享服務(wù)器80還包括:
[0245]第三獲取模塊806,用于獲取客戶端70提交的客戶端70重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案;
[0246]第一存儲(chǔ)模塊807,用于將客戶端70重新設(shè)定的與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案存儲(chǔ)在Maven依賴沖突解決信息數(shù)據(jù)庫90中。
[0247]進(jìn)一步地,參見圖15,客戶端70還包括:
[0248]第四提交模塊705,用于在處理模塊803將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端70之后,向Maven依賴沖突共享服務(wù)器80提交Maven依賴沖突評(píng)論信息;
[0249]相應(yīng)地,Maven依賴沖突共享服務(wù)器80還包括:
[0250]第四獲取模塊808,用于獲取客戶端70提交的Maven依賴沖突評(píng)論信息;
[0251]第二存儲(chǔ)模塊809,用于將Maven依賴沖突評(píng)論信息,添加在Maven依賴沖突解決信息數(shù)據(jù)庫90中Maven依賴沖突評(píng)論信息對(duì)應(yīng)的Maven依賴沖突解決方案中。
[0252]本發(fā)明實(shí)施例所述的解決Maven依賴沖突的系統(tǒng),檢索預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫,查找與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,將與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論返回給客戶端,使得客戶端根據(jù)與Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,設(shè)定與Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的Maven依賴沖突解決方案,預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫中存儲(chǔ)的是任一客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論,可以提高解決Maven依賴沖突的準(zhǔn)確性,可以不單依賴于開發(fā)人員的經(jīng)驗(yàn)和水平,提高可靠性??梢愿鶕?jù)Maven依賴沖突解決方案選擇信息,對(duì)Maven依賴沖突解決信息數(shù)據(jù)庫中的Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新,提高M(jìn)aven依賴沖突解決信息數(shù)據(jù)庫中的信息的準(zhǔn)確性,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性。可以將客戶端重新設(shè)定的Maven依賴沖突解決方案存儲(chǔ)在Maven依賴沖突解決信息數(shù)據(jù)庫中,增加Maven依賴沖突解決信息數(shù)據(jù)庫中的信息量,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性。可以將Maven依賴沖突評(píng)論信息,添加在Maven依賴沖突解決信息數(shù)據(jù)庫中,提高M(jìn)aven依賴沖突解決信息數(shù)據(jù)庫中的信息的準(zhǔn)確性,從而進(jìn)一步地提高解決Maven依賴沖突的準(zhǔn)確性??梢酝ㄟ^Maven指令行工具或Eclipse POM編輯器進(jìn)行相關(guān)信息的提交,方便快捷。
[0253]所述裝置、系統(tǒng)與前述的方法流程描述對(duì)應(yīng),不足之處參考上述方法流程的敘述,
不再一一贅述。
[0254]上述說明示出并描述了本發(fā)明的若干優(yōu)選實(shí)施例,但如前所述,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對(duì)其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改動(dòng)和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種解決Maven依賴沖突的方法,其特征在于,所述方法包括: 獲取客戶端提交的Maven軟件項(xiàng)目依賴沖突信息; 檢索預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫,查找與所述Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;其中,所述Maven依賴沖突解決信息數(shù)據(jù)庫用于存儲(chǔ)任一所述客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論; 將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端,使得所述客戶端設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。2.如權(quán)利要求1所述的方法,其特征在于,獲取客戶端提交的Maven軟件項(xiàng)目依賴沖突信息,包括: 獲取所述客戶端通過Maven指令行工具中的查看指令提交的所述Maven軟件項(xiàng)目依賴沖突信息;或, 獲取所述客戶端通過Eclipse POM編輯器中的查看界面提交的所述Maven軟件項(xiàng)目依賴沖突信息。3.如權(quán)利要求1所述的方法,其特征在于,當(dāng)所述客戶端設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是從與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案中選擇的時(shí),所述方法還包括: 獲取所述客戶端提交的Maven依賴沖突解決方案選擇信息; 對(duì)所述Maven依賴沖突解決信息數(shù)據(jù)庫中的與所述Maven依賴沖突解決方案選擇信息對(duì)應(yīng)的所述Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新。4.如權(quán)利要求3所述的方法,其特征在于,獲取所述客戶端提交的Maven依賴沖突解決方案選擇信息,包括: 獲取所述客戶端通過Maven指令行工具中的選擇指令提交的所述Maven依賴沖突解決方案選擇信息;或, 獲取所述客戶端通過Eclipse POM編輯器中的選擇界面提交的所述Maven依賴沖突解決方案選擇信息。5.如權(quán)利要求1所述的方法,其特征在于,當(dāng)所述客戶端設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是所述客戶端重新設(shè)定的時(shí),所述方法還包括: 獲取所述客戶端提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案; 將所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案存儲(chǔ)在所述Maven依賴沖突解決信息數(shù)據(jù)庫中。6.如權(quán)利要求5所述的方法,其特征在于,獲取所述客戶端提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案,包括: 獲取所述客戶端通過Maven指令行工具中的上傳指令提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案;或, 獲取所述客戶端通過Eclipse POM編輯器中的上傳界面提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。7.如權(quán)利要求6所述的方法,其特征在于,將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端之后,還包括: 獲取所述客戶端提交的Maven依賴沖突評(píng)論信息; 將所述Maven依賴沖突評(píng)論信息,添加在所述Maven依賴沖突解決信息數(shù)據(jù)庫中所述Maven依賴沖突評(píng)論信息對(duì)應(yīng)的所述Maven依賴沖突解決方案中。8.如權(quán)利要求7所述的方法,其特征在于,獲取所述客戶端提交的Maven依賴沖突評(píng)論信息,包括: 獲取所述客戶端通過Maven指令行工具中的評(píng)論指令提交的Maven依賴沖突評(píng)論信息;或, 獲取所述客戶端通過Eclipse POM編輯器中的查看界面提交的Maven依賴沖突評(píng)論信息。9.如權(quán)利要求1所述的方法,其特征在于,將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端,使得所述客戶端設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案,包括: 從與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論中,選取滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論; 將滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端,使得所述客戶端根據(jù)滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論,設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。10.一種解決Maven依賴沖突的裝置,其特征在于,所述裝置包括: 第一獲取模塊,用于獲取客戶端提交的Maven軟件項(xiàng)目依賴沖突信息; 查找模塊,用于檢索預(yù)設(shè)的Maven依賴沖突解決信息數(shù)據(jù)庫,查找與所述Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論;其中,所述Maven依賴沖突解決信息數(shù)據(jù)庫用于存儲(chǔ)任一所述客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論; 處理模塊,用于將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端,使得所述客戶端設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。11.如權(quán)利要求10所述的裝置,其特征在于,所述第一獲取模塊包括: 第一獲取單元,用于獲取所述客戶端通過Maven指令行工具中的查看指令提交的所述Maven軟件項(xiàng)目依賴沖突信息;或, 第二獲取單元,用于獲取所述客戶端通過Eclipse POM編輯器中的查看界面提交的所述Maven軟件項(xiàng)目依賴沖突信息。12.如權(quán)利要求10所述的裝置,其特征在于,當(dāng)所述客戶端設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是從與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案中選擇的時(shí),所述裝置還包括: 第二獲取模塊,用于獲取所述客戶端提交的Maven依賴沖突解決方案選擇信息; 更新模塊,用于對(duì)所述Maven依賴沖突解決信息數(shù)據(jù)庫中的與所述Maven依賴沖突解決方案選擇信息對(duì)應(yīng)的所述Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新。13.如權(quán)利要求12所述的裝置,其特征在于,所述第二獲取模塊包括: 第三獲取單元,用于獲取所述客戶端通過Maven指令行工具中的選擇指令提交的所述Maven依賴沖突解決方案選擇信息;或, 第四獲取單元,用于獲取所述客戶端通過Eclipse POM編輯器中的選擇界面提交的所述Maven依賴沖突解決方案選擇信息。14.如權(quán)利要求10所述的裝置,其特征在于,當(dāng)所述客戶端設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是所述客戶端重新設(shè)定的時(shí),所述裝置還包括: 第三獲取模塊,用于獲取所述客戶端提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案; 第一存儲(chǔ)模塊,用于將所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案存儲(chǔ)在所述Maven依賴沖突解決信息數(shù)據(jù)庫中。15.如權(quán)利要求14所述的裝置,其特征在于,所述第三獲取模塊包括: 第五獲取單元,用于獲取所述客戶端通過Maven指令行工具中的上傳指令提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案;或, 第六獲取單元,用于獲取所述客戶端通過Eclipse POM編輯器中的上傳界面提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。16.如權(quán)利要求15所述的裝置,其特征在于,所述裝置還包括: 第四獲取模塊,用于在所述處理模塊將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端之后,獲取所述客戶端提交的Maven依賴沖突評(píng)論信息; 第二存儲(chǔ)模塊,用于將所述Maven依賴沖突評(píng)論信息,添加在所述Maven依賴沖突解決信息數(shù)據(jù)庫中所述Maven依賴沖突評(píng)論信息對(duì)應(yīng)的所述Maven依賴沖突解決方案中。17.如權(quán)利要求16所述的裝置,其特征在于,所述第四獲取模塊包括: 第七獲取單元,用于獲取所述客戶端通過Maven指令行工具中的評(píng)論指令提交的Maven依賴沖突評(píng)論信息;或, 第八獲取單元,用于獲取所述客戶端通過Eclipse POM編輯器中的查看界面提交的Maven依賴沖突評(píng)論信息。18.如權(quán)利要求10所述的裝置,其特征在于,所述處理模塊包括: 選取單元,用于從與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論中,選取滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論; 返回單元,用于將滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端,使得所述客戶端根據(jù)滿足預(yù)設(shè)推送條件的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論,設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。19.一種解決Maven依賴沖突的系統(tǒng),其特征在于,所述系統(tǒng)包括: 客戶端、Maven依賴沖突共享服務(wù)器和Maven依賴沖突解決信息數(shù)據(jù)庫; 其中,所述Maven依賴沖突解決信息數(shù)據(jù)庫,用于存儲(chǔ)任一所述客戶端在解決Maven軟件項(xiàng)目依賴沖突過程中提交的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論; 所述客戶端包括:第一提交模塊,用于向所述Maven依賴沖突共享服務(wù)器提交Maven軟件項(xiàng)目依賴沖突信息; 所述Maven依賴沖突共享服務(wù)器包括:第一獲取模塊,用于獲取所述客戶端提交的所述Maven軟件項(xiàng)目依賴沖突信息; 查找模塊,用于檢索所述Maven依賴沖突解決信息數(shù)據(jù)庫,查找與所述Maven軟件項(xiàng)目依賴沖突信息匹配的Maven依賴沖突解決方案和Maven依賴沖突評(píng)論; 處理模塊,用于將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端; 相應(yīng)地,所述客戶端還包括:設(shè)定模塊,用于設(shè)定與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案。20.如權(quán)利要求19所述的系統(tǒng),其特征在于,當(dāng)所述設(shè)定模塊設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是從與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案中選擇的時(shí),所述客戶端還包括: 第二提交模塊,用于向所述Maven依賴沖突共享服務(wù)器提交Maven依賴沖突解決方案選擇信息; 相應(yīng)地,所述Maven依賴沖突共享服務(wù)器還包括: 第二獲取模塊,用于獲取所述客戶端提交的Maven依賴沖突解決方案選擇信息; 更新模塊,用于對(duì)所述Maven依賴沖突解決信息數(shù)據(jù)庫中的與所述Maven依賴沖突解決方案選擇信息對(duì)應(yīng)的所述Maven依賴沖突解決方案的使用人數(shù)和選擇比例進(jìn)行更新。21.如權(quán)利要求19所述的系統(tǒng),其特征在于,當(dāng)所述客戶端設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案是所述客戶端重新設(shè)定的時(shí),所述客戶端還包括: 第三提交模塊,用于向所述Maven依賴沖突共享服務(wù)器提交所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案; 相應(yīng)地,所述Maven依賴沖突共享服務(wù)器還包括: 第三獲取模塊,用于獲取所述客戶端提交的所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案; 第一存儲(chǔ)模塊,用于將所述客戶端重新設(shè)定的與所述Maven軟件項(xiàng)目依賴沖突信息對(duì)應(yīng)的所述Maven依賴沖突解決方案存儲(chǔ)在所述Maven依賴沖突解決信息數(shù)據(jù)庫中。22.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述客戶端還包括: 第四提交模塊,用于在所述處理模塊將與所述Maven軟件項(xiàng)目依賴沖突信息匹配的所述Maven依賴沖突解決方案和所述Maven依賴沖突評(píng)論返回給所述客戶端之后,向所述Maven依賴沖突共享服務(wù)器提交Maven依賴沖突評(píng)論信息; 相應(yīng)地,所述Maven依賴沖突共享服務(wù)器還包括: 第四獲取模塊,用于獲取所述客戶端提交的Maven依賴沖突評(píng)論信息; 第二存儲(chǔ)模塊,用于將所述Maven依賴沖突評(píng)論信息,添加在所述Maven依賴沖突解決信息數(shù)據(jù)庫中所述Maven依賴沖突評(píng)論信息對(duì)應(yīng)的所述Maven依賴沖突解決方案中。
【文檔編號(hào)】G06F9/44GK106033336SQ201510110126
【公開日】2016年10月19日
【申請(qǐng)日】2015年3月12日
【發(fā)明人】譚杰
【申請(qǐng)人】阿里巴巴集團(tuán)控股有限公司