Jenkins版本为2.306
登录Jenkins进入首页
点击右侧[新建任务]
选择[构建一个maven项目]
- 输入任务名称
- 点击[构建一个maven项目]
- 点击[OK]
General&源码管理
描述:输入当前项目的描述或者想要记录的信息
源码管理:选择Git,输入Gitlab地址和登录账号密码
指定分支:/master或/dev代表从master或dev分支拉取代码打包
(此步骤非必须,也可以忽略)
- 点击Additional Behaviours
- 选择高级的克隆行为
- 克隆和拉取的操作的超时时间填写为1000
构建触发器
一、 定时构建
- 定时构建可以对当前Jenkins自动部署时间进行设置
- 点击定时构建
- 输入H 8 * * *(代表每天早上8点自动构建一次)
二、轮询SCM
- 轮询SCM会对设置的gitlab分支进行固定时间检查,如发现git有代码更新,则自动部署
- 点击轮询SCM
- 输入H/30 * * * *(代表每半小时会自动检查一次git,如果发现有代码更新则自动部署)
Root POM配置
- Root POM输入pom.xml
- Goals and options输入clean install -DskipTests
构建后操作
- 点击构建后操作选择框
- Name:推送服务器name
- Source files:拉取的源代码目录
- Remove prefix:去除前缀,只推送war包
- Remote directory:远程服务器接收目录
- Exec command:远程服务器接收后的动作
6.1. 命令中执行的俩个文件为脚本
mv_jar.sh:将打包后的Jar包移动到当前存放文件的文件夹下
restart_jar.sh:进入存放文件的文件夹下运行提前写好的脚本,当前脚本执行的最终脚本在底部给出
点击保存后点击立即构建
构建成功后左下角展示成功状态
下方为最后运行的脚本文件
点击查看代码
#!/bin/sh
# author ruoyi
# ./ry.sh start 启动
# ./ry.sh stop 停止
# ./ry.sh restart 重启
# ./ry.sh start 状态
AppName=此处填写自己要运行的Jar包.jar
# JVM参数
JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
APP_HOME=`pwd`
LOG_PATH=$APP_HOME/logs/$AppName.log
if [ "$1" = "" ];
then
echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
exit 1
fi
if [ "$AppName" = "" ];
then
echo -e "\033[0;31m 未输入应用名 \033[0m"
exit 1
fi
function start()
{
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
if [ x"$PID" != x"" ]; then
echo "$AppName is running..."
else
nohup java -jar $JVM_OPTS $AppName > /dev/null 2>&1 &
echo "Start $AppName success..."
fi
}
function stop()
{
echo "Stop $AppName"
PID=""
query(){
PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
}
query
if [ x"$PID" != x"" ]; then
kill -TERM $PID
echo "$AppName (pid:$PID) exiting..."
while [ x"$PID" != x"" ]
do
sleep 1
query
done
echo "$AppName exited."
else
echo "$AppName already stopped."
fi
}
function restart()
{
stop
sleep 10
start
}
function status()
{
PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
if [ $PID != 0 ];then
echo "$AppName is running..."
else
echo "$AppName is not running..."
fi
}
case $1 in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
status;;
*)
esac