Java web项目自动化编译打包发布脚本

4 篇文章 0 订阅
订阅专栏
1 篇文章 0 订阅
订阅专栏

Java web项目自动化编译打包发布脚本

介绍如何通过shell脚本,将上传到gitlab上的代码pull到本地,通过maven编译打包,然后将生成的war包上传到中间服务器,之后通过远程调用中间服务器上的shell脚本,将war包传到项目部署服务器上,并完成tomcat的重启。

代码发布流程

发布流程图

实现脚本:

总共分为本地发布脚本和中间服务器上的发布脚本,实现功能分别为:

本地脚本:

  1. 切换到代码目录,checkout出需要打包的分支,pull拉取该分支最新的代码
  2. 用maven对其进行打包成为war包
  3. 将war包发送到中间服务器
  4. 运行中间服务器上的deploy发布脚本

中间服务器上的发布脚本:

  1. 杀死部署服务器的tomcat进程,删除tomcat/webRoot下的ROOT.war和其解压文件
  2. 将从本地传到中间服务器的war包发送到部署服务器上
  3. 启动tomcat进程,完成部署工作。

实现代码

  • 本地开发机器脚本
#!/bin/sh
if [ -z "$1" -o  ! -f "$1" ]
then
	echo "请输入正确的配置文件"
	exit 0;
fi
source $1
echo "切换到源码目录:$source_dir"
cd $source_dir
echo "切换分支"
git checkout $branch
if [ $? -ne 0 ]  
then
	echo "切换分支出错,退出"
	exit 1;
fi
echo "拉取最新的代码:$branch"
ret=$(git pull origin $branch)
if [ $? -ne 0 ]
then
	echo "拉取失败,退出"
	exit 0;
fi
echo "进行打包,配置文件为:$prop"
ret=$(mvn -P$prop clean package -DskipTests)
if [ $? -ne 0 ]
then
	echo "打包失败,退出"
	exit 0;
fi
echo "发送到远端ip进行批量操作,远端机器为:${duser}@$dip:$dport:$ddir"
scp -P $dport project.war ${duser}@${dip}:${ddir}/ROOT.war
echo "执行远端的批量命令"
ssh -p$dport ${duser}@${dip} "cd ${ddir};sh ${ddir}/deploy.sh"

执行参数文件

duser=admin
dip=中间服务器ip
dport=端口
ddir=war上传路径
prop=maven的属性参数文件
source_dir=项目目录
branch=项目分支
  • 中间服务器脚本
#!/bin/sh
echo "关闭已有pid"
args="-h hosts -P "
pssh $args   "cat /opt/app/tomcat/pid"
pssh $args  "cat /opt/app/tomcat/pid | sudo kill -9 \`tee\`"
echo "删除掉已有的文件"
pssh $args  "sudo rm -fr /home/admin/tomcat/webapps/ROOT"
prsync -arh hosts  ROOT.war /home/admin/tomcat/webapps/
pssh $args  "sudo /home/admin/tomcat/bin/startup.sh"
echo "当前pid"
pssh $args  "cat /opt/app/tomcat/pid"

参数文件hosts

10.28.70.157(应用服务器ip,可以为集群)

执行: sh和bash是不同的shell,sh中没有source命令,运行:sudo bash

java自动打包工具
12-05
闲来无事,手写了一个打包小工具,java swing实现的 介绍下这个打包工具 把本次你改动的java工程下的文件对应的class文件自动打包,然后热部署发布即可 如果你需要频繁改动java代码,热发布几个文件到服务器上,你会怎么做呢? 没有工具的人会手动拷贝目录 然后到webinf classes目录下找到.class文件, 试想如果你这次改动了50个文件,你还能这么仔细的手动找吗,累吗 有了这个工具,你完全不必这么费劲,直接拷贝路径,自动打出你想要的包, 所有工程同通配置 另外还有自动扫描功能,不想手动找路径,那使用自动扫描吧,选个时间点,这个时间点后的所有文件都被找出来了 此工具还可以结合svn cvs版本控制软件使用;更大力度上节省你的时间 另外请在本地环境配置下java_home
Java】通过命令行为JavaWeb项目生成一个war包
逛街的喵啊
02-03 1万+
一、war包的目录结构 从这个目录结构可以看出,war包主要由两部分组成,一是WebContent,二是classess。 WebContent目录是一个JavaWeb项目中比不可少的一部分,这里面主要存放的是前端代码、Web.xml、lib等文件 classes是编译过后的java文件的二进制文件,后台逻辑都是由这里管控 WebContent目录里面有一个名为WEB-INF的文件夹
Java Web 项目发布到Tomcat中三种部署方法
热门推荐
D的博客
03-16 4万+
首先整理项目文件,文件内包含jsp、js等和class编译后的文件及lib包,如:第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/" docBase="E:\TOMCAT\apache-tomcat-8.0.30-windows-x64\ssm-shiro" debug="0" privileg...
【IDEA】重新编译JavaWeb项目
Awt_FuDongLai的博客
11-06 5247
本机环境 jdk 1.8 tomcat 7 IDEA 2019.2 在本机上开发JavaWeb项目,部署到Linux系统的Tomcat上。如果不打成war包,需要对项目Java源文件和配置文件进行编译。否则不能正确部署项目。会报一个错误。 war exploded: Error during artifact deployment. See server log for details. 这个错误说明,JavaWeb项目部署到Tomcat的时候,出现了错误。其中可能原因之一就是,项目路径下没.
实现自动构建编译javaweb项目发布到N台服务器
weixin_34106122的博客
03-10 236
前言 当你使用nginx实现了负载均衡,当你有了超过3台以上的应用服务器时,一个特别头疼的问题就来了,发布项目好麻烦。 你每次都要在本地编译打包一遍,然后手动复制到每一台服务器上面去,如果只有一两台服务,那么确实还不算麻烦,但是当你有了一定数量的服务,你就会发现,发布一遍项目,一个小时过去了。然后你即使改动一个小的地方,所有的必须又重新发布一遍,最后在发布项目上面浪费的时间都足够你睡一觉了。 ...
web项目打包脚本
哼°
08-29 140
1、案例一,执行命令:maven clean package,表示将src/main/resouces目录下的资源文件拷贝到classes目录下 <build> <finalName>packageFileName</finalName> <resources> <resource> <targetPath...
java自动化运维_运维自动化java编译自动化
weixin_42628464的博客
02-15 210
【需求描述】为了让代码开发之后,提升测试、部署上线的效率,需要将代码编译、部署过程自动化。这里先介绍怎样使用javac自动化编译java代码。因为项目目前暂未使用ant、maven等管理构建,所以需要使用比较原始的javac来实现,很伤有木有。【背景说明】代码目录结构1、web类型的代码:达成war包(就一目录),使用tomcat来部署web类型的工程目录结构介绍# ls /home/souces...
Java Web 项目打包脚本
weixin_30346033的博客
08-16 69
可用于(但不限于)Eclipse项目。一次性生成:1.Javadoc.zip包;2.Java源代码.zip包;3.Java二进制文件.jar包;4.Java源代码加二进制.jar包;5.包含Java源代码的.war包。依赖:能在PATH中找到jar、javadoc。因项目和个人习惯不同,脚本可能需要修改才能适应实际情况。​1. [代码]某次...
web自动打包工具(java),超小
12-31
主要作用,用于java系统开发时,开发环境,测试环境,运行环境时不同,使系统发布时,每次都要修改或处理配置文件信息的,形成的麻烦,用系统打包的文件将不含这些信息,直接替换即可。 功能使用说明: 将文件放到...
java 混淆工具,不可逆 jocky 也许是最好的了
06-12
在应用的开发过程中,我们往往都会有一个Ant脚本,通过该脚本,能够对应用进行编译打包发布等一系列过程。因此,Jocky的最佳切入点便是对Ant的支持。 在Ant中使用Jocky非常简单: 1. 将lib\jocky-ant.jar ...
apk自动打包编译Shell脚本
04-20
安卓apk在CentOS上自动化编译打包发布脚本, 支持阿里ECS和RDS, 详细使用请查看博客
java自动化脚本代码
02-05
仅供参考,不喜勿喷,笔者也是很辛苦的。。。。。。。。。
web项目编译打包
05-16
截图描述普通的javaweb项目在eclipse上面编译打包成war文件,然后如何部署在tomcat上运行请看我的另一篇文章
java增量更新打包JS脚本工具
10-16
适用于Windows 平台需要:microsoft windows based script host 的支持 /* * 根据日期文件比较更新,提取更新文件 **/ var fso = new ActiveXObject("Scripting.FileSystemObject"); //工程路径 var webFolder = "C:/Users/Administrator/Desktop/Workspace/syserver/WebRoot"; //类源码路径 var srcFolder = "C:/Users/Administrator/Desktop/Workspace/syserver/src"; //目标文件路径 var destFolder = "C:/Users/Administrator/Desktop/project/syserver"; //更新文件路径 var compareDate = new Date(2015,09,1,8,00);//月从0开始
Java核心技术II(第8版)
02-10
第十一章 脚本编译与注解处理 11.1 Java平台的脚本 11.1.1 获取脚本引擎 11.1.2 脚本赋值与绑定 11.1.3 重定向输入和输出 11.1.4 调用脚本的函数和方法 11.1.5 编译脚本 11.1.6 一个示例:用脚本处理GUI事件 11.2 ...
FinalBuilder Server 7.0.0.317 crack,完美破解
12-18
FinalBuilder Server 7.0.0.317 找了一大天,没有找到一个可以用的,而且...还在等什么,赶紧建一个自动化编译部署环境,把Dev-QA-STAGING-PROD,管理器里 注意点:覆盖文件的时候,请停止服务 By Fating.Zhang
asp.net知识库
06-18
也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典信息 C#中利用GetOleDbSchemaTable获取数据库内表信息...
infrared-remote-candroid studiodemo
最新发布
05-05
android studio下载
java web项目怎么打包
03-03
打包Java Web项目,您可以按照以下步骤进行操作: 1. 在项目的根目录下创建一个名为“webapp”或“WebContent”的目录,并将您的Web应用程序文件(如HTML、JSP、CSS、JavaScript、图像等)放入其中。 2. 在项目的根目录下创建一个名为“WEB-INF”的目录,并在其中创建一个名为“classes”的目录。将您的Java类文件(如Servlet、Filter、Listener等)放入此处。如果您使用Maven或Gradle等构建工具,则可能会在此处找到已编译的类文件。 3. 在“WEB-INF”目录中创建一个名为“lib”的目录,并将您的依赖库(如JAR文件)放入其中。如果您使用Maven或Gradle等构建工具,则可能会在此处找到已解决的依赖项。 4. 在项目的根目录下创建一个名为“WEB-INF”的“web.xml”文件,并在其中定义您的Web应用程序的配置信息,例如Servlet映射、Filter、Listener等。 5. 使用打包工具(如Maven或Gradle)将您的项目打包成WAR(Web ARchive)文件。如果您没有使用构建工具,则可以使用“jar”命令手动创建WAR文件。 完成这些步骤后,您的Java Web应用程序将打包成一个WAR文件,可以将其部署到支持Java Web应用程序的Web服务器上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • WebService服务端与客户端开发 9258
  • 利用Java反射实现插件框架 8957
  • Java web项目自动化编译打包发布脚本 5841
  • nodejs+HBase数据库使用方法 3034
  • Spark做日志分析 1596

分类专栏

  • Java开发技术 4篇
  • hadoop分布式系统学习 2篇
  • 其它 3篇
  • python-爬虫 1篇
  • android-Ionic2开发
  • spark 2篇
  • 数据结构与算法分析 2篇
  • shell脚本 1篇

最新评论

  • WebService服务端与客户端开发

    小白博主: 服务端是怎么接受入参、解析入参呢

  • nodejs+HBase数据库使用方法

    会飞的猪猪@: client.table('SPLITEMETHOND_INFO') .row() .put([{key:key, column:'splitMethond:splitName',$:splitName}, {key:key, column:'splitMethond:jarName',$:jarName} ],function(err, success){ if(success) res.json({success:true}); else res.json({success:false, reason:err}); }) 李老师好,这里的row(),put()和scan()方法可以详细介绍一下吗?

  • 利用Java反射实现插件框架

    StarBlues丶: 在Springboot项目之上可以进行插件式开发的框架,见连接:https://gitee.com/starblues/springboot-plugin-framework-parent

  • 利用Java反射实现插件框架

    银龙gg: 您好 在吗 有点没太明白 如果单独的一个类呢 怎么办

  • Spark做日志分析

    李永昌: 搜狗日志数据下载地址:https://www.sogou.com/labs/resource/q.php

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 利用Java反射实现插件框架
  • Spark做日志分析
  • 二维数组中的查找(java实现)
2019年1篇
2017年8篇
2016年2篇
2015年2篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司爱联seo价格连云港营销型网站建设公司宜宾网站优化按天扣费多少钱临夏网站建设哪家好果洛百搜标王公司巢湖网站制作设计推荐楚雄营销网站多少钱红河企业网站改版报价漯河百度网站优化推荐长葛设计网站公司广州百度网站优化哪家好信阳seo优化报价吉林阿里店铺托管价格咸宁营销型网站建设公司来宾seo长葛网站设计推荐凉山网站优化按天计费公司玉溪网站优化软件价格石家庄阿里店铺运营公司盐田至尊标王报价林芝网站设计模板多少钱昌都百度网站优化排名哪家好中卫建设网站公司佛山如何制作网站价格巢湖网络广告推广价格济宁网站优化内江网页制作唐山seo网站推广哪家好枣庄SEO按效果付费报价鹤壁如何制作网站价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化