自动增量更新war包的shell脚本
我们项目是打包成war部署在jboss中的,但在上线或者运行时,经常要修改某些类然后再增量更新到war(因为生产环境只有发布的同时有,不能每个人都打包),所以都是手动做的,耗时耗力。
我花了点时间写了一个可以增量更新war包的类的shell 脚本,重点如下,脚本在附件,欢迎指正
1. war以及war/WEB-INF/lib中相关jar的解压。
先unzip war包,然后在使用find命令在war包下找到指定的相关jar包,也是使用unzip解压。
2. 增量的文件(class)的路径计算。
使用 javap命令进行反编译,在截取其中的包信息,比如计算Test.class的全限定路径,命令如下:
${JAVA_HOME}/bin/javap Test | grep ' class ' |awk -F ' ' '{if($3=="class"){print $4}else{print $3}}'
3. 匹配及更新
就是用第2步计算的信息使用find在第1步解压的文件夹下查找以及匹配,成功后则覆盖。
4.重新打包。先重新打包jar, 更新war/lib下相应的jar后,在打包war
$JAVA_HOME/bin/jar cf ${jarfolder}.jar -C $jarfolder/ .
$JAVA_HOME/bin/jar cf ${WAR_NAME}.war -C ${WAR_NAME}/ .
完整的脚本见附件,稍微修改一下对WEB-INF/lib/*.jar下的查找策略(JAR_SCOPE变量)就能运行~
https://files.cnblogs.com/files/surprizeFuture/autoUpdataWar.sh
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人