3

我正在使用 Eclipse 和 Maven-2,我希望能够在没有“它”(不确定它是 Eclipse 还是 Maven)重新编译我的应用程序的情况下编辑我的 HTML 文件。我知道通常 Eclipse 会尝试用 Eclipse 和 Tomcat 对新编译的 Java 类进行热替换。

我可以使用这样的东西吗?

getResourceSettings().setResourcePollFrequency(null);

我知道我可以在 Eclipse 中关闭 Tomcat 的自动更新,但我希望更新 HTML 文件并且如果可能的话不要更新类。

顺便说一句,我主要担心的是,在我(热)重新加载太多 java 类后,Tomcat 往往会出现 Perm gen 错误。

4

5 回答 5

1

在运行 eclipse 时,您可能需要考虑增加 permgen 空间。有一个命令行参数:

eclipse [normal arguments] -vmargs -XX:PermSize=64M -XX:MaxPermSize=128M

(复制自:) http://wiki.eclipse.org/FAQ_How_do_I_increase_the_permgen_size_available_to_Eclipse%3F

我不确定如何防止检票口重新加载 HTML 文件,但我会看看是否能找到它。

编辑:如果将轮询频率设置为 null 不起作用,请尝试使用 Duration.MAXIMUM。此外,您可以在 Eclipse 项目菜单中取消选中“自动构建”,尽管这更麻烦,但它是值得的,恕我直言。

根据 wicket 常见问题解答,当您明确设置资源轮询频率时,wicket 仅重新加载更改的标记文件:

http://www.wicketframework.org/faqs.html

除了自动禁用构建之外,我不确定如何防止 eclipse 将更改的文件复制到输出。

于 2009-09-23T02:17:23.580 回答
1

如果启用了自动构建(默认情况下:项目->自动构建),那么对项目文件的任何修改都将触发构建,无论它们是否在源文件夹中。

我总是使用Build Automatically禁用,因为我觉得它太干扰了(出于这样的原因),并且ctrl-B在我想要构建项目时点击它,或者alt-P N在需要时启动干净的对话框。

于 2009-09-23T10:21:42.600 回答
1

你是正确的,你应该使用setResourcePollFrequency(Duration.ONE_SECOND);或类似的。这个链接有更详细的信息。但是我发现,由于 Wicket 的缓存内部缓存容器在任何热交换后都会变得非常混乱,因此您可能只需要学习重新启动 Tomcat 的热键或开始使用集成的 Jetty 和 WicketTester 进行 Wicket 开发。

于 2009-10-16T21:38:48.267 回答
0

我了解您正在使用(并且可能希望继续使用)Tomcat,但在 Wicket 开发期间,您可以在调试模式下运行提供的 Jetty 服务器 onder /src/test/java/com/your/package/Start.java 来获得这个行为.. 将 Wicket 设置为开发模式以使用此功能。

于 2009-10-14T21:16:28.133 回答
0

HTML文件还是jsp文件?

你用的是tomcat吗?如果您只编辑 html 文件,请继续并根据需要更改它们。只要您不将它们部署到其他地方以供 tomcat 获取它们,您就会看到更新。

如果是jsp,保存新文件,删除旧工作文件夹下的文件。这将使 tomcat 认为这是第一次请求文件,它会即时重新编译 jsp。

于 2009-10-15T19:26:45.053 回答