资讯专栏INFORMATION COLUMN

项目中如何使用Maven进行版本管理

曹金海 / 2214人阅读

摘要:每定义一个版本时,需要同时定义各个模块的版本号,定义好以后,更新父的版本号,需要使用模块新特性的就更新父的版本,这样就保证版本能够统一进行管理。

Maven 是一个项目管理工具,每个项目deploy到repository中以后,都有一个坐标,坐标中就包含一个版本,那个版本将是我们进行版本控制管理的一个重点。

一个产品实际可能包含10几个模块,模块间会有依赖关系,所以在项目管理中经常听到这种抱怨:

“测试环境又发不了券了?”

“是谁又把我的jar包覆盖了?”

“这个功能测试环境都测试好了,到了预生产怎么又不行了?”

“jar包又被哪个傻X覆盖了?”

这些基本上都是因为实际研发过程中版本管理混乱或者几乎没有版本管理造成的,有的是直接就一个版本用到底,所有环境都用一个版本,经常是还没上线的代码deploy到repository中,导致线上其他模块发布出现了问题。

大家可以想象一下,一个项目中可能有10几个模块,每个模块都有依赖的模块,无论是哪套环境,任何一次deploy都可能影响到其他的环境,这是多么恐怖的事情。所以,“稳定大于一切”,“应该给研发人员和测试人员应有的安全感!”

如何在maven中进行这个版本的控制呢?如何解决这些问题呢?

1.版本统一进行定义管理

定义一个统一的父pom项目,该项目只进行版本的管理,其他所有的模块的版本都在父pom中配置管理,一个模块依赖其他模块时统一继承父pom中的版本。

定义好每个迭代周期的版本后,统一修改父pom的版本,父pom中定义好各个环境的profile,不同的环境使用不同的profile。

每定义一个版本时,需要同时定义各个模块的版本号,定义好以后,更新父pom的版本号,需要使用模块新特性的就更新父pom的版本,这样就保证版本能够统一进行管理。如下图父pom项目中1.0.3版本的对应的user是1.0.2版本,order是1.0.1版本,pay是1.0.3版本。如果下一次要进行新功能开发,user修改版本为1.1.0,其他模块接口不变,那么父pom就需要进行版本升级为1.1.0,pay依赖user模块1.1.0版本就需要更新父pom的版本号。

父pom项目统一由管理员进行控制管理,每次版本修改都由管理进行发布管理。

2.支持多套环境的版本切换

maven仓库支持snapshot版本和release版本,研发环境和测试环境可以使用snapshot版本进行发布,研发环境和测试环境属于高频deploy执行的,所以保证不更新版本号每次deploy后maven打包时会更新依赖,正式环境使用relase版本,如果需要升级就更新版本号。

3.支持多版本同时存在

每个项目可以发布多个版本,不同的版本可以被不同的模块依赖,能够各取所需,比如,user模块有1.0.1-release版本和1.0.3-release版本,这两个版本可以被不同的模块引用,只有需要1.0.3-release新特性的模块才对应更新父pom的版本。

以上就是我在项目管理中实际使用maven进行版本控制的经验。
欢迎大家关注我的微信公众号(xtech100),一切讨论切磋!
这是我在百家号的原文地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/72305.html

相关文章

  • 项目&版本管理工具---MAVEN&SVN

    摘要:是一个项目管理工具,它包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统,和用来运行定义在生命周期阶段中插件目标的逻辑。此外,能够很方便的帮你管理项目报告,生成站点,管理文件,等等。 在进行实际项目开发时往往不是由一个人去完成一整个项目,而是分模块进行完成最后将所有项目进行聚合,那么就可以用到maven和svn。MAVEN是用来管理项目的,我认为它最大的优势就在于...

    oneasp 评论0 收藏0
  • Maven就是这么简单

    摘要:软件项目的管理就会变得简单很多。比如说的驱动程序,,在是获取不到的,就需要手工上传到里是仓库组,在里没有这个概念,是特有的。 什么是Maven Maven是一个采用纯Java编写的开源项目管理工具, Maven采用了一种被称之为Project Object Model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中.. Maven是一款跨平台的项目...

    leonardofed 评论0 收藏0
  • 如何使用maven搭建web应用

    摘要:引言有过一定应用开发的小伙伴一定有过使用框架搭建项目的经历。由于的面向项目的方法,许多项目发文时使用,而且公司项目采用的比例在持续增长。 引言 有过一定web应用开发的小伙伴一定有过使用框架搭建web项目的经历。的确,使用一些框架确实给我们的工作带来了很大的方便使得开发人员把更多的时间专注于业务的开发而把业务的逻辑实现交给了框架来实现,而搭建框架时比较烦的就是引入一系列jar包,因为我...

    DirtyMind 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<