使用Jendins实现码云的自动化部署jar包—SpringBoot工程项目
之前做的项目都是自己手动上传,特别麻烦,今日有幸接触到自动化部署的,便花了时间学习一下,终于老天不负有心人,完美的搞定了,同时也记录了下来,防止后面的人少走弯路
1、首先搭建Jendins所需要的环境
网上有很多教程,这里贴我认为比较好的教程
https://blog.youkuaiyun.com/tanqian351/article/details/73333370
这篇是根据Gitlab来搭建的,而我的主题是根据码云来搭建,所以只需要看到Jendins搭建成功便可。
2、下载码云对应所需要的插件
这个插件在其它博客没提到,害的我找了半天也没看到需要哪个插件,最终在一个博客上的图片看到了那个所需的插件,如果没这个插件,以后提交代码到码云并不会同步到Jendins里面去
在系统管理——》插件管理——》在Avaliable标签页中查询
找到Gitee Plugin 插件,然后安装成功后重启
3、开始构建工程
1、给工程取个名字,然后选择第一列
2、描述一下工程是做什么的
3、选择Git,填写仓库地址,也就是代码提交的地址
4、红色框框是安装Gitee插件之后才会有的,所以需要安装一下,然后勾选
5、展开之后,可以根据需求,来决定勾选那些来触发构建
6、在码云的项目里面,添加WebHooks 钩子
7、添加Url和密码
8、这里可以选择执行Shell脚本
9、我的Shell是这样写的,可以参考一下,主要作用是每次构建时,都会执行Shell脚本,然后就可以执行我们想要的结果
cd /root/.jenkins/workspace/myDeploy/
mvn clean install
whoami
cd /usr/mydata/jenkins && ./nt-wechat-api.sh restart
这个里面的nt-wechat-api.sh 文件内容是:
#!/bin/bash
pname="SpringBoot-0.0.1-SNAPSHOT.jar"
ppath="/root/.jenkins/workspace/myDeploy/target/SpringBoot-0.0.1-SNAPSHOT.jar"
java_opts=" -Xms100m -Xmx200m"
ptime=$(date "+%Y-%m-%d %H:%M:%S")
echo "${ptime} ${pname} begin restart"
process=$(ps -ef | grep java | grep $pname)
if [ $? -eq 0 ]; then
echo "process exists"
pid=`echo $process|awk '{print $2}'`;
echo "kill process,pid:"$pid
kill -9 $pid
echo "after kill,restart"
BUILD_ID=dontKillMe nohup setsid java $java_opts -jar $ppath > /home/log/${pname}_log.file 2>&1 &
else
echo "process $pname not exist,begin restart"
BUILD_ID=dontKillMe nohup setsid java $java_opts -jar $ppath > /home/log/${pname}_log.file 2>&1 &
fi
pname 是jar包的文件名
ppath 是jar包的所在的文件路径,这个文件路径是Jendins配置的,然后使用mvn clean package 命令打包得来的jar
10、最后就保存
11、开始构建
12、查看构建时,执行Shell脚本的日志输出
13、可以看到日志输出的异常或者时候成功,方便调试
14、最后就构建完成,然后你就可以提交代码到码云,查看Jendins是否能自动拉取代码,打包编译成jar包,最后看是否能执行成功