局部更新 java web 的文件

方法一:直接更新文件

直接修改部署后的文件。比如用 maven 打包成 WAR 文件,部署(复制)到 Tomcat/webapps 目录后,Tomcat 会立即将 WAR 文件解压成目录结构。此时,只需进入目录修改对应的文件就可以了。

修改 Tomcat 解压出来的文件,可能需要 root 权限。

 

参考资料:

Servlets Demystified in Chapter 1 of Head First Servlet & JSP 

 

 

方法二:更新线上运行中 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

 

posted @ 2016-03-05 23:01  TonyYPZhang  阅读(1331)  评论(0编辑  收藏  举报