jenkins构建与自动部署maven项目
一、构建环境
Jenkins,jdk1.8,git,maven
1. 构建前要查看jenkins服务器里是否安装jdk1.8,git,maven,其中maven不需要设置MAVEN_HOME环境变量,设置了会影响jenkins里的maven插件。
安装好后,在全局工具里配置:
maven配置文件:
Jdk
Git
Maven
2. 检查jenkins里的插件是否安装好Maven Integration、Gitlab、Publish over SSH,依次按名称搜索直接安装
二、新建任务(新建你要构建的maven项目)
在我的视图里可以看到刚新建好的任务
三、配置
1. GitBucket
为了不使磁盘被占用太多,选择丢弃旧的构建,只保留7天的构建
2. 源码管理
我们使用的是git拉取代码,填写项目代码的git地址
3. Build
填写项目pom.xml文件的相对路径
4. 构建后操作
如果项目构建后需要部署到服务器里,就增加构建后操作步骤,选择:Send build artifacts over SSH
然后填写想要部署的服务器信息,服务器信息要事先在“系统管理”中的“系统设置”中先添加进去,在这边才能选择。
系统设置中的Publish over SSH设置如下:
然后在我们项目里的Send build artifacts over SSH中就可以选择刚设置好的服务器。
上面的配置是把构建好的war包发到131这台服务器的/usr/local/userapp/exportimage/目录中,并执行两条写好的部署脚本命令:
sh /usr/local/userapp/exportimage/backup.sh
sh /usr/local/userapp/exportimage/restart.sh
131服务器脚本信息如下:
四、构建
以上一个maven项目的配置就搞定了,就可以开始构建了
进入我们要构建的任务视图中,点击立即构建就可以开始了
在左下角的构建历史中就可以看到构建的情况
如果想要看到构建的详细信息可以点击构建历史并点“控制台输出”
构建成功并发布成功!然后登录到两台机查看jar包是否运行就可以了
五、附录
脚本:
backup.sh,保留七天文件夹:
#!/bin/bash
workdir=$(cd $(dirname $0); pwd)
filepath=`date +%Y%m%d%H%M%S`
if [ ! -d $workdir/backup ];then
mkdir -p $workdir/backup
fi
find $workdir/backup/ -maxdepth 1 -mtime +7 -name "2*" -execdir rm -rf {} \;
mkdir $workdir/backup/$filepath
cp -rf $workdir/exportimage-0.0.1-SNAPSHOT.war $workdir/backup/$filepath/
重启脚本如下:
restart.sh:
#!/bin/bash
workdir=$(cd $(dirname $0); pwd)
sh "$workdir"/stop.sh
sleep 15
sh "$workdir"/start.sh
停止stop.sh:
#!/bin/bash
pid=`ps -ef|grep exportimage-0.0.1-SNAPSHOT.war |grep java |awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 "$pid"
fi
启动start.sh:
#!/bin/bash
workdir=$(cd $(dirname $0); pwd)
nohup java -jar "$workdir"/exportimage-0.0.1-SNAPSHOT.war --spring.profiles.active=prod > /dev/null 2>&1 &