maven项目多工程结构良好体验

       在项目开发工程中,根据业务功能不同,会划分功能模块,需要建立多个工程。不同工程可能由不同的人来开发,可能会引用到相同组件的不同版本。随着项目推进,存在需要版本分支的需求。那我们要怎么把maven用好,方便管理呢?

        针对以上需求,我大致整理了一下,在实际项目开发过程中主要存在以下3个问题:

        1.源代码封版本,到了某个阶段,提交一个相对稳定的版本,根据版本规划,存在多版本同步开发或者运维。希望能够方便的修改整个产品的源码版本号,不用每一个组件工程都去修改。

        2.组件的版本号提升。多个项目之间存在依赖关系,被依赖组件会根据版本规划存在多个不同版本号。希望能够方便的修改整个产品的版本号,不用每一个组件工程都去修改。

        3.各个组件可能存在引用相同第三方组件不同版本号的情况。需要规范同一产品依赖组件版本号。

        针对以上3个问题,我们应该怎么建立组件的工程呢?

        按照maven规范建立工程及模块。通俗说就是父子工程。

        整个产品建立一个父工程,命名为XXX-parent,类型为pom工程。其他业务组件继承该工程,定义为模块工程。在父工程的pom中通过<version>标签去定义版本。因为父子工程结构,子工程就自动继承了版本号。通过修改父工程pom的版本号,发布后,就简单的实现了组件库中不同版本组件的入库。解决了问题2.

        因为是父子工程的结构,子工程代码是在父工程的下级目录,源代码提交版本库后。可以在父工程做版本分支,不管有多少个子工程,整个项目一下就实现了版本的分支(标记)功能。解决了问题1。

        在父工程pom中定义<dependencyManagement>标签,子工程如果引用了对应的组件,则不能指定版本号。版本号为父工程中指定的版本号。这样多个子工程引用了同一个组件,则版本无法自定义,由父工程中指定版本的组件决定。解决了问题3。

        后续将单独写文章举例。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值