0.前言
Jenkins简单来说,就是可以帮我们简化项目的部署工作,开发人员在开发完一个小模块,当把代码推送到远程库(码云,github),就会触发Jenkins,它就可以帮我们自动的去部署项目,有的时候开发环境和生产环境的配置文件不一样,如果不部署,可能会有不可预知的问题。使用Jenkins就帮我们解决了这个问题。
1. 环境准备
这里就不说详细步骤了,列举一下都需要哪些东西。
1.1)阿里云学生机(或者你的虚拟机)
1.2)JDK安装并配置好环境变量
1.3)Maven安装并配置好环境变量
1.4)Git安装并配置好环境变量
1.5)Tomcat
1.6)Jenkins需要gitee插件
另外还有一套教学视频,大家可以看一下Jenkins的基础使用
2. Jenkins配置
2.1)点击新建项目
2.2)参数化构建
点击店家文本参数:
jar_path: linux上maven储存库的位置 + pom的groupId + pom的version
maven储存库的位置可以maven/conf/setting.xm中查看
jar_name:就是jar包的名字
后面Jenkins会在这里去部署我们的jar包。
2.3)添加码云项目
第一个是你码云的地址
下面的凭证就是你码云的账户和密码
然后在添加webhook,这个就是用来触发Jenkins运行的,开发的时候推送代码就可以部署
这里的地址我们需要放在码云中,
然后点击生成密码,在码云相应处填写,这样我们push到码云就可以直接部署了
2.4)构建
mvn clean install -Dmaven.test.skip=true
cd /alu4rDev/
./stop.sh ${jar_name}
./start.sh ${jar_path} ${jar_name}
然后点击保存
2.5)准备shell文件
上面的写了几行代码,需要借助shell,所以我们来到自己的服务器
我把两个文件放在alu4rDev这个文件夹下了
start.sh:
BUILD_ID=dontKillMe nohup java -jar ${1}${2} >/var/lib/jenkins/workspace/log 2>&1 &
echo "启动 ${2}"
BUILD_ID=dontKillMe:这个的意思是可以让它进行后台运行,不用的话,就会把后台进行杀死
注意/var/lib/jenkins/workspace/log 这个是我的日志输出文件,你可以放在自己想放的地方
stop.sh:
pid=`ps -ef | grep ${1} | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "关闭 $pid"
kill -9 $pid
fi
在启动之前执行,不然之前的还在运行就可能会端口占用
3. 测试
我从idea中推送代码到码云上,就可以自动的部署到我们的生产环境中了