1. 创建一个任务
2. 配置项目
2.1. General
2.2. 源码管理
- 配置git
- 配置git 及选择添加凭证
- 添加凭证,输入gitLab 开通的用户名和密码,完成后点击【添加】按钮
2.3. 构建触发器
2.4. 构建环境
2.5. Pre Steps
2.6. Build
- Root POM 指的是jenkins 所在服务器上的项目路径,无需填写
- Goals and options 设置为 install -DskipTests
2.7. Post Steps
SSH Server
- Name : 此处需在系统管理>系统配置>Publish over SSH 中添加,添加完成后在此处选择即可
Transfers Set
- Source files : 编译之后的jar包路径 nursing-centre-web/**/*.jar,注意你的项目是否是多模块的
- Remove prefix : 暂时不填
- Remote directory :远程服务器的项目路径,此路径不重要 /data/project/nursing-centre
- Exec command:此处填写服务器执行脚本,常用脚本备份、移动、重启等脚本,先后顺序不可调整
sh /data/project/nursing-centre/nursing-centre-web/bak.sh
#! /bin/bash
#进入脚本所在目录
cd `dirname $0`
day_ymd=$(date +'%Y%m%d')
server_name=$1
if [ -z "$server_name" ];then
server_name=$(find . -name '*.jar'|head -1)
if [[ $server_name =~ "/" ]];then
server_name=${server_name##*/}
fi
fi
if [ ! -f "$server_name" ];then
echo "not find server -> ${server_name}"
exit 0
fi
suffix_numb=0
for line in $(find ./ -name "${server_name}.${day_ymd}*")
do
tmp_numb=${line##*-}
if [ -n "$tmp_numb" ]; then
expr $tmp_numb + 1 > /dev/null 2>&1
tmp_numb=$([ $? -ne 0 ] && echo 0 || echo ${tmp_numb})
if [ $suffix_numb -lt $tmp_numb ]; then
suffix_numb=$tmp_numb
fi
fi
done
suffix_numb=$(expr ${suffix_numb} + 1)
mv ${server_name} ${server_name}.${day_ymd}-${suffix_numb}
exit 0
sh /data/project/nursing-centre/nursing-centre-web/move.sh
#! /bin/bash
cd `dirname $0`
PROJECT_PATH=$(cd `dirname $0`; pwd)
echo $PROJECT_PATH
PROJECT_PATH_TARGET=/root$PROJECT_PATH/target
echo $PROJECT_PATH_TARGET
cp $PROJECT_PATH_TARGET/*.jar .
sh /data/project/nursing-centre/nursing-centre-web/restart.sh
#!/bin/sh
PROJECT_PATH=$(cd `dirname $0`; pwd)
echo 'path' $PROJECT_PATH
PROJECT_NAME=nursing-centre-web-0.0.1-SNAPSHOT.jar
PROJECT_ALL_LOG_NAME=/logs/catalina.out
# stop process
tpid=`ps -ef|grep $PROJECT_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
# 是先关闭和其有关的程序,再将其关闭
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $PROJECT_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!' $tpid
kill -9 $tpid
else
echo 'Stop Success!'
fi
# start process
tpid=`ps -ef|grep $PROJECT_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'App is already running.'
else
echo 'App is NOT running.'
echo 'jar' $PROJECT_PATH$PROJECT_NAME
nohup java -jar $PROJECT_PATH/$PROJECT_NAME >/dev/null 2>&1 &
echo 'Start Success!'
sleep 2
# tail -f $PROJECT_PATH$PROJECT_ALL_LOG_NAME
fi
此处3个脚本,需使用chmod +x *.sh 命令添加执行权限
2.8. 构建设置
2.9. 构建后操作
全部设置完成后,点击【保存】按钮
3. 立即构建
3.1. 查看控制台输出
3.2. 查看linux 服务器项目目录
3.3. 查看linux 服务器进程
项目部署完成