gpt4 book ai didi

eclipse - 加速 Eclipse Web 浏览器中的代码更改?

转载 作者:行者123 更新时间:2023-11-28 23:07:16 25 4
gpt4 key购买 nike

我正在 Eclipse 中使用 Vaadin 框架开发应用程序。我正在使用 Tomcat v6.0 servlet 并在 Eclipse Web 浏览器中运行该应用程序。我一直遇到的一个问题是,当我测试应用程序时,最近的更改会显示在浏览器中。

无论我重新启动 Tomcat 多少次,清除所有已发布的资源并重新启动 Eclipse Web 浏览器,更改仍然不会生效。这些变化似乎是随机生效的,其中时间是最大的因素,这在开发时非常令人沮丧......

所以我的问题是,是否有其他人注意到这个问题并对如何解决它有任何想法,是否有我可以做的配置,或者我是否在重新启动中遗漏了一个阻止更改生效的步骤..?

如有任何帮助,我们将不胜感激!

最佳答案

在 Vaadin 中,大部分代码在服务器中运行,并包含在普通的 Java 文件中。资源/类更改分为三个级别:

  1. 运行时“热代码替换”。如果在 Debug模式下运行 Tomcat,则无需重新部署 Web 应用程序即可发布一些 Java 类更改。然而,如果 Tomcat 配置为“自动发布”(检查您在 Eclipse 中的服务器设置),只要类发生变化,就会自动完成重新部署,这会导致完整的上下文重新加载和 session 序列化(请参阅#2)。可以使用 JRebel 等工具增强热代码替换。

  2. Web 应用程序部署。这实质上是将一个新的 war 文件部署到服务器。导致取消部署先前版本并部署所有类和资源的新版本。有时服务器工作目录中有一些资源遗留或类未重新加载,在这种情况下需要重新启动服务器(#3)。

  3. 服务器重启。这使得整个 JVM 重新加载,所有类和 Web 应用程序也重新加载。仍然需要单独清理工作目录以确保重新加载所有内容。

除此之外还有 Vaadin 的客户端部分(本质上是用 GWT 编译的 JavaScript),它被 Tomcat 视为静态资源。如果您修改客户端 Java 代码,GWT 将用于重新编译 JavaScript。部署应该只是文件复制。浏览器缓存生成的 HTML/JS 文件,但 GWT 包含避免这种情况的机制。

您应该首先尝试更改自动发布的服务器设置,看看是否有帮助。另外,我注意到不同的 Tomcat 版本表现不同。这很不幸,但您唯一能做的就是尝试找到适合您的版本/设置。

关于eclipse - 加速 Eclipse Web 浏览器中的代码更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6521042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com