jenkins 配置子项目发版

项目更改原因

刚接手公司的项目虽说也多模块、分布式部署,但是模块之间却没有被父项目管理,每个模块都是一个单独的项目,单独维护着当前模块内使用的依赖,版本等,模块之间自然有很多重复引用的依赖,我不知道当初为什么这样创建,在我集成apollo配置中心的时候我改掉了这样依赖结构,所有的模块的依赖都和版本都统一由一个父pom管理,改成一个完全由上到下的父子结构项目,这也为后面埋下一个坑。

更改之后出现问题

测试环境上线的时候,使用的jenkins自动部署,更换了源码路径,jenkins配置每个模块的源码路径都是当前发布的模块源码根路径,发版出错了,发版错误提示没有定义版本号,版本号定义都在父pom文件里,当前模块路径下肯定没有父pom文件所以问题就出现了

想到原项目依赖结构,要部署的模块代码,其他模块没有下载源码,可能这就是当初为什么人家单独在模块pom里维护当前项目的依赖,脱离父pom管理,还有一个关键点就是如何要下载父pom路径下源码,那就是相当于把整个项目的源码都下载了,发版其中一个模块项目要下载一份整个源码,这确实不合理,但是我感觉maven不至于解决不了这样的问题

问题解决

那是肯定的,maven打包一定有办法,首先下面jinkins中源码配置:
url:要指向整个项目的源码根部目录,也确实构建项目要把整个源码下载现在,但是只有第一次是,以后的构建就是增量更新了,这个开发工具里更新是一样的

在这里插入图片描述

实现这样的效果关键还是在打包命令,可以指定子项目打包:

clean install -T 1C -Dmaven.test.skip=true -Dmaven.compile.fork=true -U -pl 子项目名称 -am

主要是后面两个命令,pl指定要打包的子项目,am是当前项目依赖的模块项目也打包

这里可以把后面的-am参数去掉,一般项目中都有自己的私服,并且也会配置在pom中,这里去掉-am之后打包更快,前提是依赖的模块项目要把deploy到私服中

改完这里之后,jenkins配置获取打好的war包路径也需要改一下
在这里插入图片描述

就是这里的Source files 和 Remove prefix两个地方,从源码根目录下指定,别之前多了一层目录,
修改完之后可以正常使用

这里不用担心每个模块都会下载一份源码,只有第一次构建的时候是全部下载源码,以后就只会增量更新,如果中途清空了jenkins构建项中的workspace,那在下一次构建时也是要下载全部源码的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值