使用 jenkins 发布 maven 项目
这里主要记录 task 创建过程,jdk和插件安装等准备工作就不说了。
1、创建一个 maven 任务
2、添加项目描述
3、添加 git 仓库地址和分支
4、添加 pom 文件路径 和 maven 构建参数
5、发布代码
脚本太长截不全,具体如下:
# 获取环境变量
source /etc/profile
APP_NAME="iam-portal"
CUSTOM_JVM=" -Xmx2g
-Xms2g
-Xmn1024m
-server
-XX:+UseConcMarkSweepGC
-XX:+HeapDumpOnOutOfMemoryError
-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+UseCMSCompactAtFullCollection
-XX:CMSFullGCsBeforeCompaction=5
-XX:+ExplicitGCInvokesConcurrent
-XX:+PrintGC -XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-XX:+PrintHeapAtGC
-XX:+PrintTenuringDistribution
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintFlagsFinal
-Xloggc:gc.log
-XX:MetaspaceSize=256m
-XX:MaxMetaspaceSize=512m
-Dspring.profiles.active=dev"
# 关闭服务
kill -9 $(ps aux | grep ${APP_NAME}.jar | grep -v grep | awk '{print $2}')
# 备份之前的jar包
mkdir -pv /opt/bak
mv /home/deployer/${APP_NAME}/${APP_NAME}.jar /opt/bak/${APP_NAME}_$(date +%F-%H-%M).jar
# 拷贝新的jar包到运行目录
cp -a /opt/${APP_NAME}/${APP_NAME}.jar /home/deployer/${APP_NAME}
# 启动服务
sleep 2
cd /home/deployer/${APP_NAME}
nohup java ${CUSTOM_JVM} -jar ${APP_NAME}.jar >> output.log 2>&1 &