总体步骤

  1. 配置源码
  2. 编译打包
  3. ssh传输到远处服务器
  4. 启动远程服务器脚本

配置代码源

jenkis上的git插件

编译打包

jenkins机器上安装需要的命令工具
一般是maven

构建选项卡中,配置和项目相对应的打包脚本

如:

1
mvn clean && mvn package -Dmaven.test.skip

传输到远程服务器

jenkins插件ssh publish

系统设置中配置远程服务器信息(密钥或用户名密码)

构建后操作选项卡中
如:

启动远程服务器脚本

project_name 生成的war包名称,没有’.war’
jenkins_dir 本机上jenkins传输来的war包的存储位置
tomcat_dir 该war包需要放置的tomcat的位置
shell_name 脚本自身的名称

test-deploy.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# !bin/sh
# tomcat路径
jenkins_dir="/root/jenkinsproject"
project_name="delopytest"
tomcat_dir="/usr/apache-tomcat-7.0.70"
# 当前脚本名称
shell_name="test-deploy.sh"
pid=`ps -ef | grep $tomcat_dir | grep -v $shell_name | grep -v grep | awk '{print $2}'`
echo "old pid:".$pid
if test "$pid"
then
echo "kill old pid: $pid ing"
kill -9 $pid
# 睡眠10s
sleep 10s
else
echo "not find old pid"
fi
# 删除旧的war包及解压文件夹,拷贝新的war包
rm -rf $tomcat_dir/webapps/$project_name*
cp $jenkins_dir/$project_name.war $tomcat_dir/webapps
sh $tomcat_dir/bin/startup.sh
sleep 10s
# 检查启动
newpid=`ps -ef | grep $tomcat_dir | grep -v $shell_name | grep -v grep | awk '{print $2}'`
if test "$newpid"
then
echo "new pid:".$newpid
exit
else
echo "not find new pid"
exit 1
fi