我正在研究使用war文件有效部署应用程序的方式。我目前所做的是每次发布时都会发送war文件。
这意味着每当有变化时,无论变化有多小,我都必须构建并交付构成应用程序的所有文件。我在想,也许这不是正确的方法。
例如,如果对css文件进行了更改,则必须重建包含所有文件的war文件。这包括重新编译所有* .java文件。
在上面的示例中,是否可以仅使用css文件构建war文件并将其部署到tomcat服务器并让Tomcat替换css文件并保留其他所有内容?
答案 0 :(得分:5)
您可以执行“爆炸”部署,这只是解压缩的war文件。然后,您可以更新单个文件。为此,您将“解压缩”目录放在您希望拥有war文件的位置。如果你使用tomcat并查看deploy目录,你会发现这就是tomcat所做的事情。
虽然不能保证会更改。 CSS文件和图像以及其他应该没有问题,但是JSP,模板文件等往往会被编译和缓存,你必须做一些配置魔术才能让应用程序替换这些工件。通常,这会带来性能成本,并且在替换类但不从内存中释放时可能会导致Dreaded PermGen错误。如果这样做,请确保在好的时刻定期弹出服务器,并使用virtualvm或jconsole或类似工具密切关注PermGen内存区域。