jenkins 2.251 jar 部署實戰

2020-08-11 17:30:36

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 伺服器進程

在这里插入图片描述
專案部署完成