首页 > 其他分享 >Jenkins自动构建项目打包并运行

Jenkins自动构建项目打包并运行

时间:2023-02-01 15:56:42浏览次数:39  
标签:grep AppName PID echo XX 构建 Jenkins 打包

Jenkins版本为2.306

登录Jenkins进入首页

image

点击右侧[新建任务]

image

选择[构建一个maven项目]

  1. 输入任务名称
  2. 点击[构建一个maven项目]
  3. 点击[OK]
    image

General&源码管理

描述:输入当前项目的描述或者想要记录的信息
源码管理:选择Git,输入Gitlab地址和登录账号密码
指定分支:/master或/dev代表从master或dev分支拉取代码打包

image

(此步骤非必须,也可以忽略)

  1. 点击Additional Behaviours
  2. 选择高级的克隆行为
  3. 克隆和拉取的操作的超时时间填写为1000

image

image

构建触发器

一、 定时构建

  1. 定时构建可以对当前Jenkins自动部署时间进行设置
  2. 点击定时构建
  3. 输入H 8 * * *(代表每天早上8点自动构建一次)

image

二、轮询SCM

  1. 轮询SCM会对设置的gitlab分支进行固定时间检查,如发现git有代码更新,则自动部署
  2. 点击轮询SCM
  3. 输入H/30 * * * *(代表每半小时会自动检查一次git,如果发现有代码更新则自动部署)

image

Root POM配置

  1. Root POM输入pom.xml
  2. Goals and options输入clean install -DskipTests

image

构建后操作

  1. 点击构建后操作选择框
  2. Name:推送服务器name
  3. Source files:拉取的源代码目录
  4. Remove prefix:去除前缀,只推送war包
  5. Remote directory:远程服务器接收目录
  6. Exec command:远程服务器接收后的动作
    6.1. 命令中执行的俩个文件为脚本
    mv_jar.sh:将打包后的Jar包移动到当前存放文件的文件夹下

image

restart_jar.sh:进入存放文件的文件夹下运行提前写好的脚本,当前脚本执行的最终脚本在底部给出

image

image

点击保存后点击立即构建

image

构建成功后左下角展示成功状态

image

下方为最后运行的脚本文件

点击查看代码
#!/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


标签:grep,AppName,PID,echo,XX,构建,Jenkins,打包
From: https://www.cnblogs.com/pinksun/p/17083095.html

相关文章