Linux环境如何替换项目WAR、JAR包中的单个文件
问题背景:在Linux环境上的weblogic发布war包,或者SpringBoot工程打成JAR包运行,有时候只是修改了几个文件,也要上传整个war包,或者jar包,这样很费时间,因此整理了一下Linux环境,更新单个war包、jar包中文件的方法。
1.如果要替换的文件直接在war包、jar包的根目录(一级目录)下,直接使用jar uvf命令替换即可
如:替换a.war中b.xml文件
jar uvf a.war b.xml
注:b.xml需要和a.war在同一个目录下。
2.如果要替换的文件在war包的二级及以下目录下,则需要以下步骤:
(1)使用jar tvf war名称 | grep 目标文件名 查询出目标文件在war包中的目录
(2)使用jar xvf war名称 目标文件名(copy上面查出的全路径) 将目标文件及所在war包中的目录解压到当前路径
(3)修改目标文件的内容,或者将要新的目标文件替换掉提取出来的目标文件
(4)使用jar uvf war名称 目标文件名(和步骤(2)中的目标文件名相同) 将新目标文件替换到war包中
举例替换JAR包单个文件的过程:
举例:替换SpringJMS04031240.war包中的ZcjdService.class,ZcjdService$1.class文件
(1)# jar -tvf SpringJMS04031240.war |grepZcjdService
(2)# jar -xvf SpringJMS04031240.war WEB-INF/classes/com/inspur/service/ZcjdService.class
(3)# cp ZcjdService.class WEB-INF/classes/com/inspur/service/
cp:是否覆盖"WEB-INF/classes/com/inspur/service/ZcjdService.class"? yes
(4)# jar -uvf SpringJMS04031240.war WEB-INF/classes/com/inspur/service
正在添加: WEB-INF/classes/com/inspur/service/ZcjdService.class(输入 = 4426) (输出 = 1892)(压缩了 57%)
更多推荐
所有评论(0)