本次采用简单的非docker方式发布,Jenkins 配置网上很多文章这里不再赘述,主要记录一下最后要执行的shell脚本。

#!/bin/bash 
#export BUILD_ID=dontKillMe这一句很重要,这样指定了,项目启动之后才不会被Jenkins杀掉。
export BUILD_ID=dontKillMe

# 防止rm 时候参数变量为空
cd /tmp/

#最终打包安装的jar包库路径,包括了依赖其他快照jar包
mvn_jar_path=/mvn/libspace/com/middol/

#指定最后编译好的jar存放的位置
www_path=/var/codespace/api/huizhong/

#Jenkins中编译好的jar位置
jar_path=/var/lib/jenkins/workspace/huizhong-api/target/

#Jenkins中编译好的jar名称
jar_name=hibernate-0.0.1-SNAPSHOT.jar

#获取运行编译好的进程ID,便于我们在重新部署项目的时候先杀掉以前的进程
pid=$(cat /var/codespace/pid/huizhong/run.pid)

#杀掉以前可能启动的项目进程
kill -9 ${pid}

#先进入mvn打包安装的路径删除依赖包
cd ${mvn_jar_path}

#先删除原来的jar文件,主要目的是删除依赖的快照包
rm -rf /mvn/libspace/com/middol/*

#进入最后指定存放jar的位置
cd ${www_path}

#先删除原来的jar文件
rm -rf ./${jar_name}

#进入指定的编译好的jar的位置
cd ${jar_path}

#将编译好的jar复制到最后指定的位置
cp ${jar_path}/${jar_name} ${www_path}

#进入最后指定存放jar的位置
cd ${www_path}

#启动jar,指定SpringBoot的profiles为test,后台启动
java -Xms1024m -Xmx1024m -Djava.security.egd=file:/dev/./urandom -jar -Dspring.profiles.active=test ${jar_name} &

#将进程ID存入到run.pid文件中
echo $! > /var/codespace/pid/huizhong/run.pid