即使我们使用 IDE 启用“保存时部署”,我们仍然需要等待一些时间来传播更改。当我们部署小的更改时,这尤其令人讨厌。
那么,是否可以在内存中运行一些 servlet 容器并使用 IDE 兼容的部署来加快部署和开发时间?甚至可以使用服务器依赖项(JSP 编译器等)在内存中运行整个容器。
(我知道我可以在 RAMDisk 上安装 Tomcat,但正在寻找“更本机”的解决方案)
即使我们使用 IDE 启用“保存时部署”,我们仍然需要等待一些时间来传播更改。当我们部署小的更改时,这尤其令人讨厌。
那么,是否可以在内存中运行一些 servlet 容器并使用 IDE 兼容的部署来加快部署和开发时间?甚至可以使用服务器依赖项(JSP 编译器等)在内存中运行整个容器。
(我知道我可以在 RAMDisk 上安装 Tomcat,但正在寻找“更本机”的解决方案)
根据他们的网站
JRebel 是一个 JVM 插件,它使 Java 开发人员可以立即查看对应用程序所做的任何代码更改,而无需重新部署。JRebel 让您可以立即查看代码更改,单独对类和资源进行版本控制,并一次更新一个,而不是作为一个整体应用程序重新部署。当开发人员对其 IDE 中的任何类或资源进行更改时,更改会立即反映在已部署的应用程序中,从而跳过构建和重新部署阶段,并且每年平均减少 5.25 个工作周的重新部署时间!
您可以做的第一件事是将部署路径设置为您的 webapps 目录。通过这种方式,您可以“展开”部署应用程序,而无需将整个应用程序复制到另一个部署目录。确保让类被编译到 WEB-INF/classes 目录中。
第二个更成问题的是类加载器。当 JVM 在调试模式下运行时,类加载器会识别方法中所做的一些代码更改,并且您会立即看到这些更改。但是一些变化,比如方法签名和结构类变化不会被检测到,所以需要重启 JVM。您可以提供一个自酿的类加载器,它能够在底层类文件更改时重新加载任何内容。
启动时,tomcat 容器会加载到内存中。并且 tomcat 会加载 webapps 目录中所有可用的应用程序。稍后在需要应用程序类时加载。并且应用程序可能会根据需要加载一些其他资源。
如果你在windows或其他操作系统上打开任务管理器,你可以看到tomcat java进程一旦启动就一直在运行。您还可以检查其当前的内存占用。所以它不会按需卸载和重新加载。