第一步:
将jenkins.war放入tomcat/webapps目录
第二步:
1.用root用户登录
2.编辑profile文件:vi /etc/profile
3.在文件最后加入:export JENKINS_HOME=/work/data
保存退出后,再执行:source /etc/profile让配置生效
第三步:
jenkins配置maven、jdk、git/svn路径
第四步:
jenkins到指定路径下,使用mvn打包springboot项目到nexus上
第五步:
配置项目启动停止脚本
#!/bin/bash
DEPLOY_PATH="/work/shell/deploy"
cd $DEPLOY_PATH
OLD_BUILD_ID=$BUILD_ID
echo $OLD_BUILD_ID
BUILD_ID=dontKillMe
sh datav-api.sh 0.0.1-Release
#改回原来的BUILD_ID值
BUILD_ID=$OLD_BUILD_ID
echo $BUILD_ID
注意:
由于jenkins构建完毕后会杀掉所有启动的进程,临时改变BUILD_ID值,使得jenkins不会找到并结束掉run.sh启动的后台进程
shell启动脚本代码如下:
#!/bin/bash
VERSION=$1
NEXUS_URL="http://192.168.0.223:8081/nexus";
INSTALL_PATH="/work/www/datav-api"
GROUP_ID="com.eddue.biz"
ARTIFACT_ID="datav-api"
if [ -z "$VERSION" ]; then
echo "ERROR: THE PROJECT'S VERSION MUST TO INPUT!"
echo "ERROR: THE PROJECT'S DEPLOY EXIT!"
exit 1
fi
if [ ! -d $INSTALL_PATH ];then
mkdir -p $INSTALL_PATH
fi
cd $INSTALL_PATH
FILE_PATH=${INSTALL_PATH}"/"${ARTIFACT_ID}"-"${VERSION}
FILE_NAME=${ARTIFACT_ID}"-"${VERSION}".jar"
WORK_PATH=${INSTALL_PATH}"/work"
rm -rf $FILE_NAME
DOWNLOAD_URL=${NEXUS_URL}"/content/repositories/eddue/"${GROUP_ID//.//}"/"${ARTIFACT_ID}"/"${VERSION}"/"${FILE_NAME}
rm -rf $FILE_PATH
rm -rf $WORK_PATH
wget -c -q $DOWNLOAD_URL
DEPLOY_DIR=`pwd`
LOGS_DIR=""
if [ -n "$LOGS_FILE" ]; then
LOGS_DIR=`dirname $LOGS_FILE`
else
LOGS_DIR=$DEPLOY_DIR/logs
fi
if [ ! -d $LOGS_DIR ]; then
mkdir -p $LOGS_DIR
fi
STDOUT_FILE=$LOGS_DIR/stdout.log
#先停止项目
PIDS=`ps -ef | grep java | grep "$FILE_NAME" | awk '{print $2}'`
if [ -z "$PIDS" ]; then
echo "$FILE_NAME"
echo "ERROR: The $SERVER_NAME does not started!"
else
echo -e "Stopping the $SERVER_NAME ...\c"
for PID in $PIDS ; do
kill $PID > /dev/null 2>&1
done
COUNT=0
while [ $COUNT -lt 1 ]; do
echo -e ".\c"
sleep 1
COUNT=1
for PID in $PIDS ; do
PID_EXIST=`ps -f -p $PID | grep java`
if [ -n "$PID_EXIST" ]; then
COUNT=0
break
fi
done
done
echo "Stop OK!\c"
fi
#启动项目
nohup java -jar $FILE_NAME > $STDOUT_FILE 2>&1 &
echo "OK!"
echo "$FILE_NAME"
PIDS2=`ps -ef | grep java | grep "$FILE_NAME" | awk '{print $2}'`
echo "PID: $PIDS2"
echo "STDOUT: $STDOUT_FILE"
echo "Start Over!"