最近一直在研究Jenkins结合Git和Maven的使用问题,其中由于客户需求,增加了Gerririt对Git的审核,几点经验供大家分享。

1.Jenkins Git源码管理的URL问题

(1)将Gerrit上需要进行Jenkins项目管理的地址复制下来,本人使用的是SSH协议的连接。

这里写图片描述

(2)将复制过来的连接粘贴到新建Maven项目的Git源码管理的URL上

这里写图片描述

(3)但是由于Jenkins与Gerrit未进行秘钥之间的验证,会报出Permission denied (publickey)

这里写图片描述

这里写图片描述

(4)在服务器上Jenkins目录下找到其公钥id_rsa.pub,打开文件将内容复制到gerrit的caojianren用户的SSH公钥处,即可完成秘钥验证。

这里写图片描述

这里写图片描述

这里写图片描述

当然,项目多,用户不变的时候,可以将Credentials的用户设置到全局变量中,Jenkins的系统变量中,全局变量的设定还是很方便的。

2.Jenkins Maven打包、发布的效率问题

描述一下我使用Jenkins打包的情况:共有44个项目,项目之间的依赖通过maven的pom实现,在Jenkins中通过构建触发器来完成maven的依赖,依赖多个工程使用“,”进行分割,行指定当前工程的pom文件。

这里写图片描述

这里写图片描述

图中报${JENKINS_GIT}不存在,不用管,这个是自定义的全局变量,也许是却少什么插件的原因,但功能是正常的。
接下来是install-deploy的流程,由于Maven项目的依赖复杂,如A工程依赖于B和C工程,同时B又依赖于C工程,这是在正常执行顶端工程打包的同时,A工程的打包会被执行2次,做了多余的工作,整体打包的速度也会慢很多,此时只需要配置工程打包执行的顺序即可完成效率的提升。

这里写图片描述

这样所有的工程只会打一次包,同时Jenkins的打包花费的时间也会减短,因为避免了同一个工程打多次包的现象。同时,我们还可以设置打包时的执行者数量,也就是并发数,使打包的过程更有效率。

这里写图片描述

3.Jenkins 在服务器无网络条件下的插件安装问题

Jenkins的安装,本人不多说,在插件安装过程中,勾选需要的插件安装即可,这样其内部会把该插件所需要的其他一些版本的jar也相应安装,如果手动来做这件事情会有许多依赖的问题及版本冲突。安装我们进到Jenkins的“系统管理”中可以看到主目录,进入到主目录,所有的插件已经下载到plugins中,如果在服务器上没有网络的前提下,我们可以把plugins这个文件加压缩拿到无网服务器上直接使用。

这里写图片描述

以上就是我个人学习Jenkins过程中的几点总结,第一次写博客,欢迎大家来交流技术问题。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐