我知道如果一个新的 .WAR 文件被复制到 webapps 目录,正在运行的 Tomcat 可以重新部署 web 应用程序。
但是,在开发模式下,只部署编译好的类会更快,并且根据tomcat的文档:https : //tomcat.apache.org/tomcat-9.0-doc/appdev/deployment.html,是可以部署的只需将编译的类和资源复制到 Tomcat 的 webapps 目录,即可在 Tomcat 上创建 web 应用程序。
我的问题是,如果在 webapps 目录中更改了新编译的类,Tomcat 是否可以自动部署?
您正在寻找的是reloadable
context 元素上的属性(参见context container)。这将定期扫描Web 应用程序中的所有文件,并在发生更改时重新加载。这在开发过程中非常有用,但在生产中非常重要(参见这个问题)。
只有当 WAR 文件或 XML 部署描述符发生更改时,您在问题中提到的autoDeploy
设置才会导致重新部署(并因此重新加载)您的应用程序:
此标志值指示 Tomcat 是否应在 Tomcat 运行时定期检查新的或更新的 Web 应用程序。如果为 true,Tomcat 会定期检查
appBase
和xmlBase
目录并部署找到的任何新 Web 应用程序或上下文 XML 描述符。更新的 Web 应用程序或上下文 XML 描述符将触发 Web 应用程序的重新加载。
(强调我的)
如果该reloadable
属性不适合您的需要,还有第三种解决方案:通过使用WatchedResources
您可以仅监视某些应用程序文件并在它们更改时重新加载。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句