Skip to content

效果图

流水线源

Java 构建物上传

构建命令

shell
cd /root/workspace/myProject
echo "当前路径"
pwd
echo "执行Maven打包命令"
mvn -B clean package -Dmaven.test.skip=true -Dautoconfig.skip
echo "Maven打包 执行成功!"
echo "当前文件夹下所有文件"
ls

构建物上传 选择打包路径, 正常只需要上传启动脚本和 jar 包 (相对路径)

主机部署

部署脚本: 进入到下载路径, 解压下载包, 启动脚本.

工作目录

Linux编写Java部署脚本 Java启动命令脚本

可能需要chomd 777 加权,按需修改配置

shell
source /etc/profile
#!/bin/sh
# 设置Java环境
JAVA_HOME=/mydata/jdk-17.0.1
export PATH=$PATH:$JAVA_HOME/bin
export BUILD_ID=dontkillme
#定义程序名 及jar包的名
PROJECT_NAME=target/myproject.jar
SERVICE_NAME=myproject
PROFILE_ACTIVE=dev
## 编写判断程序是否正在运行的方法
isExist() {
  ## java -Xms128m -Xmx256m -jar myproject.jar --spring.profiles.active=dev >black.log 2>&1 &
  ## 首先查找进程号 ps -ef | grep myproject.jar | grep -v "grep" | awk '{print $2}'
  ##  pid=$(ps -ef | grep myproject.jar | grep -v "grep" | awk '{print $2}')
  pid=$(ps -ef | grep ${PROJECT_NAME} | grep -v "grep" | awk '{print $2}')
  echo ${pid}
  ## 如果进程号不存在,则返回0 否则返回1
  if [ -z "${pid}" ]; then
    return 0
  else
    return 1
  fi
}
## 编写启动程序方法
start() {
  ## 调用 判断程序是否正在运行的方法
  isExist
  ## 判断方法返回值是否等于0 ,等于则不存在
  if [ $? -eq "0" ]; then
    echo "${PROJECT_NAME} is starting ......"
    nohup java -Xms128m -Xmx256m -jar ${PROJECT_NAME} --spring.profiles.active=${PROFILE_ACTIVE} >black.log 2>&1 &
    echo "${PROJECT_NAME} startup success"
  else
    echo "${PROJECT_NAME} is running, pid=${pid} "
  fi
}

startWithSky() {
  ## 调用 判断程序是否正在运行的方法
  isExist
  ## 判断方法返回值是否等于0 ,等于则不存在
  if [ $? -eq "0" ]; then
    echo "${PROJECT_NAME} is starting ......"
    nohup java -Xms128m -Xmx256m  -jar ${PROJECT_NAME} --spring.profiles.active=${PROFILE_ACTIVE} >black.log 2>&1 &
    echo "${PROJECT_NAME} startup success"
  else
    echo "${PROJECT_NAME} is running, pid=${pid} "
  fi
}

## 编写停止程序的方法
stop() {
  ## 调用 判断程序是否正在运行
  isExist
  ## 判断是否存在,返回值0不存在
  if [ $? -eq "0" ]; then
    echo "${PROJECT_NAME} is not running ......"
  else
    echo "${PROJECT_NAME} is running, pid=${pid}, prepare kill it "
    kill -9 ${pid}
    echo "${PROJECT_NAME} has been successfully killed ......"
  fi
}
## 编写重启方法
restart() {
  ## 先停止再启动
  stop
  start
}

## 编写重启方法
restartWithSky() {
  ## 先停止再启动
  stop
  startWithSky
}

## 程序最开始执行的
## 根据用户输入,判断执行方法
case "$1" in
"start")
  start
  ;;
"startWithSky")
  startWithSky
  ;;
"stop")
  stop
  ;;
"restart")
  restart
  ;;
"restartWithSky")
  restartWithSky
  ;;
*)
  echo "please enter the correct commands: "
  echo "such as : sh startup.sh [ start | stop | restart ]"
  ;;
esac

waitingresult.com