一种基于Maven的企业软件产品项目结构的管理方法与流程

文档序号:35378752发布日期:2023-09-09 01:01阅读:40来源:国知局
一种基于Maven的企业软件产品项目结构的管理方法与流程

本发明属于软件开发,具体来说,涉及一种基于maven的企业软件产品项目结构的管理方法。


背景技术:

1、目前同业中的maven项目结构多以以下两种结构为主:a.使用一体化的项目结构,在pom中集成所有模块及外部依赖,将所有功能和代码集成在一起,在进行新功能开发或原有功能迭代时,直接对原生包进行改动,新增功能代码直接添加到现存产品代码,新增依赖将并列引入现行功能依赖列表中。该构建方法主要在小规模产品的项目结构中出现。b.使用简单模块划分的项目结构,在划分不同模块的基础上,将每个模块作为module存在,相对于一体化项目结构,有了对模块的划分,可以有规划的管理依赖和代码逻辑。

2、根项目用于定义依赖版本和maven远程仓库地址,各下级项目包含主要业务模块、其他业务集成模块、基础平台模块,和公共集成模块。其中将所有模块作为根项目的子模块构建到同一项目下,基础模块、公共模块、业务模块进行传递依赖。该种项目管理方式并不利于新功能的扩展,当新功能进行扩展时,需要影响到原有的核心功能代码,不稳定的新功能将对现行业务产生影响。且随着技术的迭代和业务的拓展,前后端分离和微服务化成为产品未来发展趋势,上述一体化项目结构并不利于模块拆分,同样,耦合的前后端结构不适用于拆分前后端功能。


技术实现思路

1、针对现有技术拥有固定产品的客制化项目结构因耦合度过高,导致上述两种不利于项目功能扩展和技术迭代的问题,本发明提供了一种基于maven的企业软件产品项目结构的管理方法。

2、为实现上述技术目的,本发明采用的技术方案如下:

3、一种基于maven的企业软件产品项目结构的管理方法,包括步骤:

4、s1、基于maven创建核心产品项目代码和结构;

5、s2、接收客户定制化产品订单;

6、s3、基于核心产品项目搭建客制化产品项目代码和结构;

7、s4、客制化项目逻辑修改;

8、s5、产品项目交付。

9、进一步地,核心产品的maven项目结构包括:

10、总工程,核心产品的总工程,用于封装产品子模块;

11、该总工程下子模块包括:

12、依赖模块,继承自总工程,用于统一管理所有内部、外部依赖组件包,进行相关组件包的版本升级、增加新的组件依赖,在该模块下的pom.xml中进行;

13、项目父工程,继承自依赖模块,用于抽象出产品相关工程构建的jdk版本、版本控制、maven插件行为共性的部分;

14、业务核心模块,继承自项目父工程,包括基础业务模块、核心业务实现模块;

15、基础业务模块,所有基础业务核心模块的父工程,产品项目中的最通用的基础业务模块放置在该模块下;

16、核心业务实现模块,核心产品的主要业务,继承自基础业务模块。对部分业务逻辑提供客制化修改接口,若有客制化定制变动,可以在客制化项目中直接实现该接口用于修改业务逻辑;

17、项目应用模块,继承自项目父工程。产品的核心业务的所有应用的父工程,主要包含项目的应用部分实现。

18、客制化工程模块,继承自依赖模块,该模块是为依托于核心产品构建其系统的应用顶级模块;核心产品系统的客制化项目需要继承该模块后再进行开发、实现。

19、项目应用的基础工程模块。依赖于业务核心模块,其他业务应用模块依赖于该模块。核心产品应用的基础工程模块,用于建立与核心业务模块的关联关系,起到应用与业务核心模块连接的纽带作用。

20、产品业务应用模块:各个业务的应用服务模块的父工程,用于存放各业务的应用服务代码实现。

21、业务集成模块:继承自产品业务应用模块,用于产品某业务的所有核心模块的集成模块,用于打包所有核心业务功能,提供最终可运行功能的模块。

22、文档生成模块,用于产品文档生成工程。

23、监控模块,用于产品的系统监控、审计、健康和指标收集工程。

24、自动配置模块,用于给系统监控、审计、健康和指标收集工程提供自动配置的辅助工程。

25、测试集成模块:用于产品测试集成工程。

26、进一步地,客制化产品项目结构:

27、客制化总工程,继承核心产品的客制化工程模块。客制化产品第三方定制项目相关模块工程的总工程,该客制化总工程子模块包括:

28、客制化依赖模块:继承自客制化父项目,用于统一管理所有内部、外部依赖构建包。

29、客制化项目父工程:继承自客制化依赖模块。抽象出客制化项目的相关产品工程构建的jdk版本、版本控制、maven插件行为共性的部分以便统一、简化其子工程的构建。

30、客制化业务核心模块:继承自客制化项目父工程。是客制化项目的业务核心模块的父工程。

31、客制化基础业务模块:产品基础业务核心模块的父工程。

32、客制化核心业务实现模块:产品核心业务的父工程,核心业务的实现模块存放于该模块下。

33、客制化项目应用模块,产品业务相关的所有应用的父工程。

34、客制化项目应用的基础工程模块:依赖于客制化业务核心模块,其他业务应用模块依赖于该模块。核心应用模块,创建该工程模块的用途可以辅助其他业务应用的依赖核心业务模块的版本的一致化管理。

35、客制化产品业务应用模块,基础业务核心模块的父工程。

36、客制化产品其他业务应用模块,客制化产品中非主要业务的应用模块。

37、客制化业务集成模块,继承自对应的业务应用模块,依赖于核心产品项目的业务集成模块,该工程为各业务最终集成模块。

38、进一步地,核心产品为父工程,当客制化产品搭建时,直接继承核心产品的项目;各个功能模块依赖核心产品父工程中的对应模块依赖,直接集成核心产品的所有功能。可实现快速进入开发。

39、进一步地,步骤s1的详细步骤包括:

40、s101、创建com.demo.project项目,配置pom.xmi文件,定义子模块:dependencies、parent、core、apps。

41、s102、创建dependencies模块,并配置pom.xml文件;

42、s103、创建parent模块,并配置pom.xml文件;

43、s104、创建core模块,并配置pom.xml文件;

44、s1041、创建core-base模块,并配置pom.xml文件;

45、s10411、创建core-base-a模块,并配置pom.xml文件;

46、s10412、创建core-base-b模块,并配置pom.xml文件;

47、s1042、创建core-业务名模块,并配置pom.xml文件;

48、s10421、创建core-业务名-a模块,并配置pom.xml文件;

49、s10422、创建core-业务名-b模块,并配置pom.xml文件;

50、s105、创建apps模块,并配置pom.xml文件;

51、s106、创建app-customizer模块,并配置pom.xml文件;

52、s107、创建app-base模块,并配置pom.xmi文件;

53、s108、创建app-业务名模块,并配置pom.xml文件;

54、s1081、创建app-业务名-a模块,并配置pom.xml文件;

55、s1082、创建app-业务名-b模块,并配置pom.xml文件;

56、s109、基于s10411和s1081创建app-consolea模块,并配置pom.xml文件;在app-consolea模块中配置打包环境配置文件。

57、s1010、基于s10411和s1081创建app-consoleb模块,并配置pom.xml文件;在app-consoleb模块中配置打包环境配置文件。

58、进一步地,步骤s3的详细步骤包括:

59、s301、创建客制化产品项目,配置pom.xmi文件;

60、s302、创建xxx-dependencies模块,并配置pom.xml文件;

61、s303、创建xxx-parent模块,并配置pom.xml文件。

62、还包括步骤:s304、步骤创建xxx-biz模块,并配置pom.xml文件;

63、s305、创建xxx-biz-base模块,并配置pom.xml文件;

64、s306、创建xxx-biz-core模块,并配置pom.xml文件;

65、s307、包括:s3071、创建xxx-biz-base-a模块,并配置pom.xml文件;在xxx-biz-base-a模块中实现客制化业务代码。

66、s3072、创建xxx-biz-base-b模块,并配置pom.xml文件;在xxx-biz-base-b模块中实现客制化业务代码。

67、在步骤s3071和s30101完成后,创建app-consolea模块,并配置pom.xml文件;结束。

68、s308、创建xxx-apps模块,并配置pom.xml文件;

69、s309、创建xxx-app-base模块,并配置pom.xml文件;

70、s3010、创建xxx-app模块,并配置pom.xml文件;

71、s30101、创建xxx-app-a模块,并配置pom.xml文件;

72、s30102、创建xxx-app-b模块,并配置pom.xml文件;

73、在步骤s3072和s30102完成后,创建app-consoleb模块,并配置pom.xml文件。

74、本发明相比现有技术,具有如下有益效果:

75、1.依托于核心在先产品的客制化项目,由于可以直接继承在先产品pom,可以更快启动项目开发;

76、2.针对客制化开发的代码,由于不在原有产品代码中进行开发,可以有效与产品核心业务代码隔离,客制化的功能不会影响核心业务的正常运行;

77、3.对于业务核心代码和应用代码部分,在本发明的结构中进行了有效拆分,在技术上做前后端分离改造时,可以更快更有效的进行改造工作;

78、4.本专利的结构形式对各核心业务模块、业务模块、辅助模块等进行了拆分,未来在领域进行提取和拆分,并在技术上进行微服务化的改造时,可以更快更有效的进行改造工作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1