jenkins是一款众所周知的可持续集成的打包软件,比如我们开发日常工作就是开发——>单元测试——>打包——>上传服务器——>用tomcat 运行 war包,或者将 jar 包打成镜像用 docker 加载,整个工作比较繁琐又没什么技术含金量,像类似的这种重复打包工作就可以用 jenkins 这种工具来解决。

今天我们来重点讲讲,如何通过jenkins来打包spring boot程序,本文抛砖引玉,提供一些思路给大家,可以自行实现自己想要的打包需求。

第一步,通过docker直接部署jenkins

docker run -u root --rm -d -p 49000:8080 -p 50000:50000 -v /opt/jenkins-data:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v /usr/share/maven:/usr/local/maven -v /root/.nvm/versions/node/v10.16.0:/usr/local/node/v10.16.0 jenkinsci/blueocean

主要映射49000和50000端口到宿主机的8080和50000端口,之所以把maven和node都映射到容器里,一是为了方便,二是一些国内镜像配置在宿主机上都比较好配,省得花时间全部打包到镜像里,会很冗余,而且在宿主机上切换版本也比较方便。

第二步,安装插件和基础配置

系统管理 >> 插件管理

主要用到以下两款插件

这边因为打包的是java,所以maven必不可少

Maven Integration

1623774611431.jpg

其次每次打包完,肯定要发到服务器上

Publish Over SSH

1623774641626.jpg

装完插件以后,需要配置插件和一些基础设置

maven配置到系统设置的全局工具配置里面设置,如图:
1623777760931.jpg

配置要发布的服务器信息, 这个在“系统管理>>系统配置”中设置,如图:

1623778056487.jpg

因为我们是通过ssh来发布,所以要事先生成好ssh的私钥和公钥,这个直接通过命令

ssh-keygen -t rsa -P ''

生成好之后将公钥id_rsa.pub复制到要发布的目标服务器的指定用户的文件夹下的 ssh 目录,比如/root/.ssh/authorized_keys里

第三步,开始配置打包流程

1. 新建任务,定义任务名称,选构建maven项目,如下图:

1623774795503.jpg

2. 任务配置

1) 构建设置一定要设置

不然每次构建都会生成jar包,很快就会占满磁盘,我一般就保留2次

2) 构建前的设置,
一般就是打个echo,说明你要开始构建某个项目了,然后是build,通过maven命令来打jar包,如图:
1623774989625.jpg

3) 源码管理,这边是用git管理工具,直接填你仓库的相关信息即可,没啥好说的

1623774931000.jpg

4) 构建设置,这个就是构建的时候如果失败或不稳定,可以通过邮件来提醒你,如图:
1623775012505.jpg

5) 最后一步,就是通过Publish Over SSH这个插件,来把构建完的jar包,通过ssh命令发布到指定服务器上,如图:

1623775091423.jpg

source files这是当前项目的jar包位置
remove prefix 就是去掉source files的目录前缀
remote directory 就是目标服务器基于server配置的基本目录的相对远程目录
exec command 图中例子就是通过docker-compose编译jar包为镜像,并启动运行

3. 立即构建

等构建配置结束之后,我们就可以轻轻单击一下,完成整个打包工作,如下图
7431625848615_.pic.jpg

如果要查看打包的明细,可以从上图下方的红框中的构建列表中点进去,查看“控制台输出”:
7441625848783_.pic_hd.jpg

到此,整个打包过程结束,配置好了一劳永逸。用了jenkins 之后不管是产品上线还是测试,效率显著提高,开发可以集中精力在业务开发上。

文章目录