更新线上运行中 WAR, EAR 包里的个别文件

Posted TonyYPZhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更新线上运行中 WAR, EAR 包里的个别文件相关的知识,希望对你有一定的参考价值。

大型 web 应用的编译是很耗时间的,将编译后的包部署到 web server 上面可能也要很久。

有时候只是修改了一个静态文件,如 html, css, jpg,这些修改是无需编译的。如果将整个 web 项目重新编译、部署使得变动生效,工作效率会很低。

如何将改动的静态文件直接更新(替换)到线上 WAR/EAR 呢?

可以使用命令

jar uf jar-file input-file(s)

解释:

u - 表示你想要更新一个已存在的 JAR 文件

f - 表示需要更新的文件在命令行中指定

jar-file - 需要更新的已存在的 JAR 包

input-files(s) - 一个或多个需要更新(新增)的文件名,多个文件之间用空格隔开

JAR 包中和 input-file(s) 同名的文件会被覆盖点。

 

例子:

已知 TicTacToe.jar 内容如下:

audio/yahoo2.au
example1.html
images/
images/cross.gif
images/not.gif

新增文件 new.gif 

jar uf TicTacToe.jar images/new.gif

更新后 TicTacToe.jar 内容如下:

audio/yahoo2.au
example1.html
images/
images/cross.gif
images/not.gif
images/new.gif

 

参考资料 : 

Updating a JAR File, Oracle

 

以上是关于更新线上运行中 WAR, EAR 包里的个别文件的主要内容,如果未能解决你的问题,请参考以下文章

tomcat war包解压问题

java的war、jar、ear包的作用分别是啥?

如何在 EAR 或 WAR 之外存储 Java EE 配置参数?

使用 Maven 将版本文件放入 EAR 或 WAR

在压缩的 EAR 中部署爆炸的 WAR == 不可能?

如何使用 Maven 在 EAR 中添加 WAR