▮全文概述
在编写项目时,很头大的事情就是需要自己手动的上传jar包到服务器上启动。如果出现一点bug,就要重头上传和启动。这是一件很烦的事情,所以,可以使用jenkins和gitee实现项目的自动部署
▮全流程
- 在本地提交代码到gitee
- gitee发送请求通知jenkins
- jenkins接到通知后自动执行任务
- 构建maven项目,打jar包
- 构建后执行启动jar包的脚本
最终,我在本地提交代码,服务器也可以跟着改变,不再需要我手动的去上传jar包到服务器启动。全操作很简洁,不使用Docker,也不需要配置
▮建立gitee仓库
- 使用github,gitlab都可以
- 使用gitee比较方便,也不需要我去搭建gitlab
▮下载jenkins
▪上传jenkins的war包到服务器
通过百度网盘分享的文件:jenkins.war
链接:https://pan.baidu.com/s/1RjwJ0Yy7tnyd9WjzukaSvw?pwd=hldy提取码:hldy
▪上传Maven包到服务器
通过百度网盘分享的文件:apache-maven-3.6.3.zip
链接:https://pan.baidu.com/s/1fMHnDfXxJ5I9bF88u3h6dw?pwd=hldy提取码:hldy
网盘里Maven的仓库源是阿里云的。如果你的Maven是从别的渠道下载,记得修改“settings.xml” 文件里的仓库源
▪服务器下载git
yum install git
▪服务器下载Java
yum install java-11-openjdk-devel
▮启动jenkins
▪启动命令(端口自定义,安全组记得开放)
nohup java -jar jenkins.war --httpPort=58082 &
▪访问Web界面
http://服务器IP:58082/ 第一次加载需要等待几分钟
▪从jenkins日志获取管理员密码
vim nohup.out打开日志文件读取token,:q退出vim
▪安装推荐插件
▪创建一个用户
▪实例配置
▮添加插件
▪Maven插件
向下滚动 ,看到Maven安装完成就行
▪Gitee插件
▮系统配置
▪配置Maven
▪配置Gitee
▮新建任务
▪丢弃旧的构建
▪配置源码-Git
从仓库获取连接
▪配置gitee的构建触发器(gitee通知jenkins执行此任务)
什么都不用管,只需要生成下面这个Gitee WebHook就行
▪设置gitee仓库的WebHook
在这个界面是可以测试钩子是否正常的,但不知为何,在gitee上测试只会报错,但你提交代码的时候又可以正常的触发钩子。所以这里我先不管,后面再去测试钩子是否正常
▪指定pom文件
▪执行shell命令,启动jar包
BUILD_ID=DONTKILLME #获取你想运行jar包的进程号 pid=`ps -ef | grep mindmap.jar | grep -v grep | awk '{print $2}'` #如果存在则把该进程杀掉 if [ -n "$pid" ] then echo "kill -9 的pid:" $pid kill -9 $pid fi echo "复制jar包" #把jenkins打的jar包复制到自己指定的目录下 cp /root/.jenkins/workspace/mindMap/5.mindmap-service/target/mindmap.jar /root/cloud echo "启动jar包" #最后启动jar包并把日志输出到指定的文件中以便查看 nohup java -jar /root/cloud/mindmap.jar &
在文本框里输入要执行的命令
"mindmap.jar",是jar包名,这个记得换成你自己的包名
"cp /root/.jenkins/workspace/mindMap/5.mindmap-service/target/mindmap.jar /root/cloud"
- "/root/.jenkins/workspace"是jenkins的工作目录,在控制台是看不到的,但是你可以通过cd指令进入。
- "/root/cloud"是我自定义的一个目录,这个指令就是把打出的jar包转移到这个目录下。这个你可以自定义
至此,整个任务配置完成,如果你需要打多个jar包启动,那你可以把上面这个命令行复制几份去启动就行。如果你向使用DockerFile
▮测试
▪在本地git提交代码到仓库
▪jenkins自动部署
点击可以进入,实时查看执行流程
第一次打包需要加载很多东西,所以需要比较长的时间
打包成功
执行指令,后台启动jar包
可以看到,需要的服务已经全部启动。这就是全自动部署