jenkins 2.251 jar 部署实战

1. 创建一个任务

jenkins 2.251 jar 部署实战_第1张图片

2. 配置项目

jenkins 2.251 jar 部署实战_第2张图片

2.1. General

jenkins 2.251 jar 部署实战_第3张图片

2.2. 源码管理

  • 配置git

jenkins 2.251 jar 部署实战_第4张图片

  • 配置git 及选择添加凭证

jenkins 2.251 jar 部署实战_第5张图片

  • 添加凭证,输入gitLab 开通的用户名和密码,完成后点击【添加】按钮
    jenkins 2.251 jar 部署实战_第6张图片

2.3. 构建触发器

jenkins 2.251 jar 部署实战_第7张图片

2.4. 构建环境

jenkins 2.251 jar 部署实战_第8张图片

2.5. Pre Steps

jenkins 2.251 jar 部署实战_第9张图片

2.6. Build

jenkins 2.251 jar 部署实战_第10张图片

  • Root POM 指的是jenkins 所在服务器上的项目路径,无需填写
  • Goals and options 设置为 install -DskipTests

2.7. Post Steps

jenkins 2.251 jar 部署实战_第11张图片

SSH Server
  • Name : 此处需在系统管理>系统配置>Publish over SSH 中添加,添加完成后在此处选择即可
    jenkins 2.251 jar 部署实战_第12张图片
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. 构建设置

jenkins 2.251 jar 部署实战_第13张图片

2.9. 构建后操作

jenkins 2.251 jar 部署实战_第14张图片

全部设置完成后,点击【保存】按钮

3. 立即构建

jenkins 2.251 jar 部署实战_第15张图片

3.1. 查看控制台输出

jenkins 2.251 jar 部署实战_第16张图片

3.2. 查看linux 服务器项目目录

jenkins 2.251 jar 部署实战_第17张图片

3.3. 查看linux 服务器进程

在这里插入图片描述
项目部署完成

你可能感兴趣的:(jenkins)