参考https://blog.csdn.net/achenyuan/article/details/75305172
jekins和tomcate在同一个环境
cp /root/.jenkins/workspace/mavnentest/target/*.war /home/newwar
PROJECT_NAME=testmaven
TOMCAT_VERSION=tomcate
TOMCAT_HOME="/home/"$TOMCAT_VERSION""
echo "backup"
cp "$TOMCAT_HOME"/webapps/"$PROJECT_NAME".war /home/oldwar/"$PROJECT_NAME"_`date +%Y%m%d%H%M`.war
#检查一下,删除5天前的war包文件,
find /home/oldwar -mtime +10 -type f -name *.war -exec rm -rf {} \;
echo "over"
cp /home/newwar/"$PROJECT_NAME".war "$TOMCAT_HOME"/webapps/
ps -ef |grep "$TOMCAT_VERSION" | grep -v grep |awk '{print $2}'|xargs kill -9
cd "$TOMCAT_HOME"/webapps
echo "remover war file"
rm -rf "$PROJECT_NAME"
cd "$TOMCAT_HOME"/bin
echo "start tomcat"
./startup.sh
- 系统管理 》 管理插件 》 可选插件 (常用插件,安装jenkins的时候已经安装完毕,现在下载额外几款插件)
注意部署方法,这个可以自动部署
这里只是本地环境和jekins在一起的配置(同一环境)
部署在另外一个tomcate时如果报错,看jenkins的console的log,如果提示:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
去tomcate下编辑vi catalina.sh
加上下面,在117行作用
export JAVA_HOME= /usr/local/jdk |
export JRE_HOME= /usr/local/jdk/jre |
**************************************************************************************************************
“增加构建后操作步骤”选:“Send build artifacts over SSH”
Name:即在系统设置里配的服务器地址
Source files:要上传的文件,这里指定上传的是war,YUI_ADM_WAR/target/*.war
Remove prefix:指定需要过滤的文件夹,YUI_ADM_WAR/target/
Remote directory:指定将war上传到服务器哪个目录,/usr/local/tomcat/newWarBack
Exec command:上传完成后要执行的linux命令
PROJECT_NAME=adm
TOMCAT_VERSION=apache-tomcat-7.0.68-1
TOMCAT_HOME="/usr/local/tomcat/"$TOMCAT_VERSION""
echo "backup"
cp "$TOMCAT_HOME"/webapps/"$PROJECT_NAME".war /usr/local/tomcat/oldWarBack/"$PROJECT_NAME"_`date +%Y%m%d%H%M`.war
#检查一下,删除5天前的war包文件,
find/usr/local/tomcat/oldWarBack -mtime +10 -type f -name *.war -exec rm -rf {} \;
echo "over"
cp /usr/local/tomcat/newWarBack/"$PROJECT_NAME".war "$TOMCAT_HOME"/webapps/
ps -ef |grep "$TOMCAT_VERSION" | grep -v grep |awk '{print $2}'|xargs kill -9
cd "$TOMCAT_HOME"/webapps
echo "remover war file"
rm -rf "$PROJECT_NAME"
cd "$TOMCAT_HOME"/bin
echo "start tomcat"
./startup.sh
强制杀死tomcat进程,删除已经部署过的war文件夹(注意不是war文件而是war部署生成的文件夹),执行启动tomcat命令。
ps:注意这是由本地上传到外网的命令,但走SSH上传是很慢的.有时jenkins和服务器和要运行的服务器在一起,就可以不用上传,可以只执行shell命令不上传文件,使用cp命令复制了.如下:
把
Source files , Remove prefix,Remote directory都设为空,只保留Exec command,加上cp命令实现linux内网传输,完整命令如下:
cp /home/cy/jenkinsws/workspace/oil_stage_adm/src/master/base/YUI_ADM_WAR/target/*.war /usr/local/tomcat/newWarBack
PROJECT_NAME=adm
TOMCAT_VERSION=apache-tomcat-7.0.68-1
TOMCAT_HOME="/usr/local/tomcat/"$TOMCAT_VERSION""
echo "backup"
cp "$TOMCAT_HOME"/webapps/"$PROJECT_NAME".war /usr/local/tomcat/oldWarBack/"$PROJECT_NAME"_`date +%Y%m%d%H%M`.war
#检查一下,删除5天前的war包文件,
find/usr/local/tomcat/oldWarBack -mtime +10 -type f -name *.war -exec rm -rf {} \;
echo "over"
cp /usr/local/tomcat/newWarBack/"$PROJECT_NAME".war "$TOMCAT_HOME"/webapps/
ps -ef |grep "$TOMCAT_VERSION" | grep -v grep |awk '{print $2}'|xargs kill -9
cd "$TOMCAT_HOME"/webapps
echo "remover war file"
rm -rf "$PROJECT_NAME"
cd "$TOMCAT_HOME"/bin
echo "start tomcat"
./startup.sh
5.7.执行立即构建:
当输出如下时则表示已经构建完成
6.重启: http://localhost:8080/restart
退出:http://localhost:8080/exit