jenkins的配置
-
创建模块名称
-
常规设置
-
源码管理
-
构建及pom书写
-
shell脚本
遇到的问题
- 权限问题
如下图,jenkins服务器未与应用服务器之间建立无密码通道,导致无法取到jar包,继而构建错误
解决方案:jenkins服务器与应用服务器之间建立无密码通道,需要运维人员或管理员进行设置。 - shell脚本文件路径问题
构建错误提示无法找到file,很大可能原因是shell脚本书写的文件路径有问题
解决方案:脚本出现的路径都详细排查一遍,确保文件路径无误
- 持续更新中。。。
另附上应用项目的shell脚本以供参考
#设置临时变量
ROOTDIR=$WORKSPACE
SRC_JAR="${POM_ARTIFACTID}-${POM_VERSION}.jar"
TAG_JAR="${POM_ARTIFACTID}-${POM_VERSION}.jar"
MDIR=${POM_ARTIFACTID}
cd $ROOTDIR
#删除不同版本老jar包
#获取进行中的进程
PID=`ssh -p 2002 root@10.167.78.16 "ps -aux | grep $MDIR | grep jar | grep -v grep" | awk '{print $2}'`
#如果存在则删除
if [ -n "$PID" ]
then
ssh -p 2002 root@10.167.78.16 "kill -9 $PID"
fi
#删除相同版本老jar包
PID=`ssh -p 2002 root@10.167.78.16 "ps -aux | grep $TAG_JAR | grep -v grep" | awk '{print $2}'`
if [ -n "$PID" ]
then
ssh -p 2002 root@10.167.78.16 "kill -9 $PID"
fi
#删除相同版本jar包,这里保留以前版本jar包,防止上线失败继而手动回滚
ssh -p 2002 root@10.167.78.16 "rm -f /server/$MDIR/$TAG_JAR"
#创建模块文件夹,-p代表如果有则不创建
ssh -p 2002 root@10.167.78.16 "mkdir -p /server/$MDIR"
#迁移新jar包到指定位置
scp -P 2002 $MDIR/target/$TAG_JAR root@10.167.78.16:/server/$MDIR
BUILD_ID=dontKillMe
#创建批处理文件
echo '#!/bin/bash' > start.sh
echo "source /etc/profile
cd /server/$MDIR
java \
-Xms512M -Xmx512M -Xmn256M -XX:SurvivorRatio=8 -XX:MetaspaceSize=90M \
-jar $TAG_JAR >server.log 2>&1 &" >> start.sh
#移动批处理文件到指定未知
scp -P 2002 start.sh root@10.167.78.16:/server/$MDIR
#修改权限
ssh -p 2002 root@10.167.78.16 "chmod +x /server/$MDIR/start.sh"
#执行文件
ssh -p 2002 root@10.167.78.16 "BUILD_ID=dontKillMe /server/$MDIR/start.sh"