[发明专利]一种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.vipzhuanli.com/pat/books/201811278654.5/2.html,转载请声明来源钻瓜专利网。