2

即使我们使用 IDE 启用“保存时部署”,我们仍然需要等待一些时间来传播更改。当我们部署小的更改时,这尤其令人讨厌。

那么,是否可以在内存中运行一些 servlet 容器并使用 IDE 兼容的部署来加快部署和开发时间?甚至可以使用服务器依赖项(JSP 编译器等)在内存中运行整个容器。

(我知道我可以在 RAMDisk 上安装 Tomcat,但正在寻找“更本机”的解决方案)

4

3 回答 3

2

根据他们的网站

JRebel 是一个 JVM 插件,它使 Java 开发人员可以立即查看对应用程序所做的任何代码更改,而无需重新部署。JRebel 让您可以立即查看代码更改,单独对类和资源进行版本控制,并一次更新一个,而不是作为一个整体应用程序重新部署。当开发人员对其 IDE 中的任何类或资源进行更改时,更改会立即反映在已部署的应用程序中,从而跳过构建和重新部署阶段,并且每年平均减少 5.25 个工作周的重新部署时间!

http://zeroturnaround.com/software/jrebel/

于 2013-09-25T08:51:10.667 回答
1

您可以做的第一件事是将部署路径设置为您的 webapps 目录。通过这种方式,您可以“展开”部署应用程序,而无需将整个应用程序复制到另一个部署目录。确保让类被编译到 WEB-INF/classes 目录中。

第二个更成问题的是类加载器。当 JVM 在调试模式下运行时,类加载器会识别方法中所做的一些代码更改,并且您会立即看到这些更改。但是一些变化,比如方法签名和结构类变化不会被检测到,所以需要重启 JVM。您可以提供一个自酿的类加载器,它能够在底层类文件更改时重新加载任何内容。

于 2013-09-25T08:39:29.563 回答
0

启动时,tomcat 容器会加载到内存中。并且 tomcat 会加载 webapps 目录中所有可用的应用程序。稍后在需要应用程序类时加载。并且应用程序可能会根据需要加载一些其他资源。

如果你在windows或其他操作系统上打开任务管理器,你可以看到tomcat java进程一旦启动就一直在运行。您还可以检查其当前的内存占用。所以它不会按需卸载和重新加载。

于 2013-09-25T08:35:44.143 回答