1. 环境准备
在与Jenkins服务器同一主机安装Tomcat目录。
如果同一台主机上有多台tomcat,则需要修改${TOMCAT_HOME}/conf/server.xml端口:
8005 --> 7000,
8080 --> 7100 ,
8009 --> 7200,
8443 --> 7300
2.Jenkins创建任务
配置完成后,“立即构建”该项目。
如果出现找不到"mvn"等命令,应用"全局工具配置"中进行相应配置。
3.将war包发布到tomcat中,重新构建
#!/bin/bash
#
# 该脚本共分为两部分:
# 第一部分为maven打包程序,
# 第二部分为启动tomcat
#
#mvn 打包
mvn clean
mvn package
#=================定义用于启动tomcat的变量===========================
#tomcat目录
tomcat_home=/usr/local/soft/tomcat-8.0.27-war
#war包名
war_name=com-springmvcMybatis-demo.war
#war解压后的目录名
war_name_dir=com-springmvcMybatis-demo
#war包在jenkins中的初始绝对路径
war_path_jenkins=/root/.jenkins/jobs/web/workspace/target/${war_name}
#war包在tomcat中的绝对路径父目录
war_path_tomcat_parentDir=${tomcat_home}/webapps
#war包在tomcat中的绝对路径
war_path_tomcat=${war_path_tomcat_parentDir}/${war_name}
#war解压后的目录在tomcat中的绝对路径
war_path_tomcat_dir=${war_path_tomcat_parentDir}/${war_name_dir}
#war的url
war_url=192.168.1.98:7100/com-springmvcMybatis-demo/
echo "tomcat目录=>${tomcat_home}"
echo "war名=>${war_name}"
echo "war解压后的目录名=>${war_name_dir}"
echo "war包在jenkins中的初始绝对路径=>${war_path_jenkins}"
echo "war包在tomcat中的绝对路径父目录=>${war_path_tomcat_parentDir}"
echo "war包在tomcat中的绝对路径=>${war_path_tomcat}"
echo "war解压后的目录在tomcat中的绝对路径=>${war_path_tomcat_dir}"
pid_isExist=`ps -ef|grep ${tomcat_home}|wc -l`
echo "pid_isExist==>${pid_isExist}"
if [ "x${pid_isExist}" != "x1" ];then
echo "==>关闭已存在的web ... "
sh ${tomcat_home}/bin/shutdown.sh
sleep 10
fi
if [ -f ${war_path_tomcat} ];then
rm -rf ${war_path_tomcat}
echo "==>删除${war_path_tomcat}"
fi
if [ -d ${war_path_tomcat_dir} ];then
rm -rf ${war_path_tomcat_dir}
echo "==>删除${war_path_tomcat_dir}"
fi
#将war包从jenkins初始绝对路径下复制到tomcat的父目录
echo "==>将war包从jenkins初始绝对路径下复制到tomcat的父目录"
cp ${war_path_jenkins} ${war_path_tomcat_parentDir}
sleep 10
#启动war包
echo "==>启动war包"
sh ${tomcat_home}/bin/startup.sh
sleep 10
echo "WEB URL => ${war_url}"
4.其它项目发布
jar包、python项目、gradle项目发布时,只需要重新配置Shell启动脚本即可。