git + tomcat + maven + jenkins 实现自动化部署jar包和war包详细教程 ---亲测
前言首先什么是自动化部署呢, 先来一张图之前我们可能要在本地用maven命令等打成jar包或者是war包 , 然后将打包好的包放到服务器的tomcat上, 这些过程都是手动的, 如果一个项目需要频繁的修改测试部署, 这时候来一个自动化部署多么的炫酷, jenkins就帮我们做了这事 , 下面说一下核心的配置和步骤环境准备Jenkins2.228Git1.8.3.1Mave...
前言 |
首先什么是自动化部署呢, 先来一张图
之前我们可能要在本地用maven命令等打成jar包或者是war包 , 然后将打包好的包放到服务器的tomcat上, 这些过程都是手动的, 如果一个项目需要频繁的修改测试部署, 这时候来一个自动化部署多么的炫酷, jenkins就帮我们做了这事 , 下面说一下核心的配置和步骤
环境准备 |
- Jenkins 2.228
- Git 1.8.3.1
- Maven 3.5.0
- JDK 1.8
- GitLab 12.0.2
- tomcat 8.x
- 两台服务器: 192.168.50.150 119.3.xxx.xxx
我们还需要在jenkins上配置Git的私钥, 不然代码屎拉不下来的,参考如下链接
配置SSH
这些工具的安装步骤就不详细的说了,百度上都有,也可以私信我
部署jar包核心配置 |
- 首先我们先在Jenkins上配置好一会所需要的服务器
进到系统设置,划到最下面
- 配置工具
Maven
JDK
Git
Maven
- 新建一个项目,进行配置,新建项目选择自由风格的就行, 就不做演示了, 建完项目进行配置
下面是核心,构建后的操作(如果选项卡中没有send build artifacts over ssh,就去安装一下SSH Build Agents插件)
Shell脚本如下
#!/bin/sh
app_dir=/opt/maven/jarstore/com/ywq/test/0.0.1-SNAPSHOT
app_file_path=$app_dir/test-0.0.1-SNAPSHOT.jar
app_path=/opt/jar/test.jar
source /etc/profile
if [ -f $app_file_path ] ;then
echo -- stop app
pidlist=`ps -ef | grep test| grep -v grep | awk '{print $2}'`
if [ "$pidlist" = "" ] ;then
echo "no app pid alive!"
else
echo "app Id list :$pidlist"
kill -9 $pidlist
echo "KILL $pidlist:"
fi
echo -- 开始部署$app_path
if [ -f $app_path ] ;then
rm -f $app_path
echo -- 正在删除$app_path
fi
mv $app_file_path $app_path
echo -- 开始启动$app_path
export JAVA_HOME=/opt/jdk1.8
nohup java -Xms1024m -Xmx1024m -jar $app_path > test.log &
echo -- 启动完成
fi
这样就是配置好了,就可以实现jar包的自动化部署了
部署war包核心配置 |
部署war包和jar 很相似, 只是在最后一步有差别,构建后的操作
部署war包就不用脚本了, 用Deploy to container 插件(如果选项卡里没有,就去装一下)
如果说我们没有配置tomcat的管理账号密码, 就去tomcat下conf目录的tomcat-users.xml文件添加一下,内容如下(在tomcat-uses 这个标签中)
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat_user" password="123456" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script" />
其余步骤和上面一样, 这样就算配置成功了
总结 |
这一套自动化流程帮我们提高了很大的效率, 同时也避免的一些人为错误的发生。
从无到有, 两天的时间, 也是翻阅了很多资料, 遇到了很多困难, 多去尝试!
如有对本文或者安装的过程有异议或问题,欢迎讨论学习!
更多推荐
所有评论(0)