注意:
springboot项目打包的两个方式
jar包
war包
如果是打war包,项目启动服务器还需要安装tomcat
具体细节可参考:
Jenkins之路(二):使用Jenkins自动部署SpringBoot项目(svn篇)
Jenkins之路(三):使用Jenkins自动部署SpringBoot项目(Github篇)
jenkins本地服务器构建:https://blog.csdn.net/weferxe/article/details/88827697
远程服务器构建(不在jenkins本地服务器):https://blog.csdn.net/hyh17808770899/article/details/108963225
主要在于
1.构建:通过maven打包项目
2.构建后的操作:通过maven打包好的jar包发送到目标服务器
3.启动脚本
常规:
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/home/java/jdk1.8.0_251 #你自己的jdk路径
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
echo " =====关闭Java应用======"
PROCESS=`ps -ef |grep java |grep -v grep|grep /home/project/JenkinTest.jar|awk '{print $2}'`
for i in $PROCESS
do
echo "Kill the $1 process [ $i ]"
kill -9 $i
done
echo " =====启动Java应用======"
nohup java -jar /home/project/JenkinTest.jar > /home/test/out.log 2>&1 &
echo $! > savePid.txt
cat savePid.txt
rm savePid.txt
springboot项目不同环境对应配置项启动:
LOG=/home/jenkins/fabu.log
echo "---------------------------------------" >> $LOG
date >>$LOG
c_time=`date +%Y-%m-%d-%H%M%S`
work_dir="/home/jenkins/test-gift-pc-shop"
tomcat_name="tomcat8-test-shop"
product_name="gift-pc-shop"
src_dir="/home/appdev/$tomcat_name/webapps/$product_name"
dst_dir="/home/jenkins/back/$product_name-"$c_time
###########################################
cd $work_dir
mv -f $src_dir $dst_dir
echo "mv $src_dir --> $dst_dir" >> $LOG
mkdir $src_dir
war_file=`ls *.war`
#cur_version=`echo $war_file|cut -f2 -d'_' | cut -f1-3 -d'.'`
echo "$war_file | $cur_version " >> $LOG
unzip -qq $work_dir/$war_file -d $src_dir
echo "unzip $work_dir/$war_file | $cur_version --> $src_dir" >> $LOG
/bin/sh /home/appdev/$tomcat_name/bin/shutdown.sh
kill -9 $(ps -ef | grep tomcat | grep $tomcat_name | grep -v grep | awk '{print $2}')
echo "stop tomcat" >> $LOG
sleep 10
echo "copy applicate config to webapps" >> $LOG
cp -f $work_dir/application.yml /home/appdev/$tomcat_name/webapps/$product_name/WEB-INF/classes/application.yml
cp -f $work_dir/config.properties /home/appdev/$tomcat_name/webapps/$product_name/WEB-INF/classes/config.properties
cp -f $work_dir/application-redis.properties /home/appdev/$tomcat_name/webapps/$product_name/WEB-INF/classes/application-redis.properties
cp -f $work_dir/application-activemq.properties /home/appdev/$tomcat_name/webapps/$product_name/WEB-INF/classes/application-activemq.properties
echo "copy weixin config" >> $LOG
cp -f $work_dir/*.txt /home/appdev/$tomcat_name/webapps/$product_name/
echo "rm work dir" >> $LOG
rm -rf /home/appdev/$tomcat_name/work/Catalina/localhost/*
echo "rm temp dir" >> $LOG
rm -rf /home/appdev/$tomcat_name/temp/*
#chown -R appdev:appdev $src_dir
#date >>$LOG
#echo "chown ok" >> $LOG
/home/appdev/$tomcat_name/bin/startup.sh
#su - appdev -c "/bin/sh /home/appdev/$tomcat_name/bin/startup.sh"
date >>$LOG
echo "start tomcat" >> $LOG
echo "" >> $LOG
now_dir="/home/jenkins/now/"
org_file="$work_dir/$war_file"
/bin/mv -f $org_file $now_dir
echo "clean $org_file" >> $LOG
echo "all down" >> $LOG
echo "" >> $LOG
##################################
# start change nginx config
# just no need to do nothing