[發明專利]一種Maven項目編譯方法和裝置有效
| 申請號: | 201811278654.5 | 申請日: | 2018-10-30 |
| 公開(公告)號: | CN111124413B | 公開(公告)日: | 2022-02-11 |
| 發明(設計)人: | 張世偉;李文 | 申請(專利權)人: | 邁普通信技術股份有限公司 |
| 主分類號: | G06F8/41 | 分類號: | G06F8/41 |
| 代理公司: | 北京中博世達專利商標代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 610041 四川省成都市高*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 maven 項目 編譯 方法 裝置 | ||
本發明實施例提供一種Maven項目編譯方法和裝置,涉及軟件工程領域,用于解決現有編譯方式編譯效率低下的問題。該方法包括:確定系統內部依賴模塊;將依賴模塊的序號確定為1、將有依賴模塊且依賴模塊的序號已確定的序號確定為最大序號加1;由序號2開始遍歷所有項目,若項目的目標模塊只依賴該項目中編碼順序為當前遍歷的編譯序號減1的模塊,則將項目的目標模塊追加至該項目中編碼順序為當前遍歷的序號減1的模塊之后;若所有項目的目標模塊均為空集,則將編譯序號大于當前編譯序號的所有模塊的序號減1;對各項目進行排序;根據各模塊的序號以及各模塊所屬項目的排序對各模塊進行編譯。本發明實施例用于Maven項目編譯。
技術領域
本發明涉及軟件工程領域,尤其涉及一種Maven項目編譯方法和裝置。
背景技術
在Maven項目中,每個項目包含若干個模塊,這些模塊按照Maven項目對象模型(Project Object Model,POM)的方式進行管理。即,每個模塊對應一個pom.xml文件,這些pom.xml形成一個樹狀的層次結構。
Maven項目的模塊之間存在依賴關系。即,一個模塊編譯時依賴若干個其他模塊的編譯結果。從樹狀的pom.xml文件集中,Maven工具能夠解析出項目包含的模塊集合,并分析出每個模塊的依賴模塊集合。Maven工具在模塊編譯之前檢測模塊的依賴模塊的編譯結果是否存在于本地倉庫,如果所有依賴模塊的編譯結果都存在于本地倉庫中,則開始編譯,否則提示依賴模塊不存。最后,如果模塊編譯成功則將模塊的編譯結果存入本地倉庫供其他模塊編譯引用。如果依賴模塊集合都屬于同一項目,Maven工具能夠決定項目內部模塊的編譯順序,然而一個復雜的業務系統通常都會包含多個Maven項目,這些Maven項目所包含的模塊在項目之間存在依賴關系,例如:項目A的模塊A1依賴項目B的模塊B3、B4,以及項目C的模塊C5,但Maven工具本身不能處理依賴導致的項目之間的模塊編譯順序問題。當前,處理Maven項目之間的模塊編譯依賴的方法是:依次編譯系統所屬的項目,每個項目編譯成功的模塊將編譯結果存入Maven的本地倉庫;然后多次編譯失敗的項目,直到每個項目的所有模塊都編譯成功。在這種編譯方式下,若一個業務系統擁有較多的Maven項目,并且所有Maven項目都在進行頻繁的迭代開發,則每個項目重復編譯次數會非常多,進而導致編譯效率低下。
發明內容
本發明的實施例提供一種Maven項目編譯方法和裝置,用于解決現有編譯方式編譯效率低下的問題。
為達到上述目的,本發明的實施例采用如下技術方案:
第一方面,本發明實施例提供了一種Maven項目編譯方法,包括:
確定業務系統中所有Maven項目的每一個模塊的系統內部依賴模塊;
循環遍歷未確定編譯序號的模塊,將沒有系統內部依賴模塊的模塊的編譯序號確定為1、將有系統內部依賴模塊且系統內部依賴模塊的編譯序號已確定的模塊的編譯序號確定為當前最大編譯序號加1,直至所有模塊的編譯序號均已確定;
由編譯序號2至最大編譯序號依次遍歷所述業務系統中所有Maven項目,對于任一Maven項目,若該Maven項目的目標模塊只依賴該項目中編碼順序為當前遍歷的編譯序號減1的模塊,則將該Maven項目的目標模塊追加至該Maven項目中編碼順序為當前遍歷的編譯序號減1的模塊之后;以任意編譯序號遍歷所述業務系統中所有Maven項目時,若所有Maven項目的目標模塊均為空集,則將編譯序號大于當前編譯序號的所有模塊的編譯序號減1,任一Maven項目的目標模塊為該Maven項目中編譯序號與當前遍歷的編譯序號相同的模塊;
按照各Maven項目的模塊的編譯序號最大值從小到大對各Maven項目進行排序;
根據各模塊的編譯序號以及各模塊所屬Maven項目的排序對各模塊進行編譯。
可選的,所述根據各模塊的編譯序號以及各模塊所屬Maven項目的排序對各模塊進行編譯,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于邁普通信技術股份有限公司,未經邁普通信技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811278654.5/2.html,轉載請聲明來源鉆瓜專利網。





