centOS安装tomcat,部署打成war包的项目时,tomcat运行后能否删除原有的war包?

很久没有写博客了。。。

       之前在把springboot项目打成war包后,部署到tomcat,后面在没有停止tomcat 的情况下,直接删除了war导致war包对应的文件夹也被删除。首先,war包是不能在tomcat运行时删除的,否则会删除对应的自动解压的工程,我们可以先停止tomcat后删除war包;其次呢,当我们重新部署项目的时候,如果webapps中已经有与war文件相同名字的文件夹,就不会重新部署。这里的重新部署的意思就是,不会再解压之前的war文件,也不会覆盖对应文件夹也就是工程下的可能已经被我们修改过的文件

        1. 为什么我们不能在tomcat正在运行的情况下删除war包呢?

        因为,tomcat在运行期, 会实时监控webapps目录下的war包文件,如果有新增的war,就去解压它; 如果有删除war的操作,就连同项目一起删除 ,也就是删除了war包对应的文件夹。如果我们需要删除war包,就需要先停止tomcat,再删除war包,这样就不会有什么影响。

        2. tomcat中的webapps中的war包和同名的已解压项目文件夹是怎么加载的?

        在tomcat启动的时候,回去webapps文件夹下查看所有的war包,并查看是否有同样名称的文件夹或者说工程,如果有,tomcat就不会再解压该war包,也不会去覆盖该文件夹下的文件。只有当我们删除war包对应的同名文件夹的时候,启动tomcat的时候才会再次进行解压war包的操作。

猜你喜欢

转载自blog.csdn.net/huangyuehong914/article/details/81456130