我正在使用Eclipse和Maven-2,我希望能够编辑我的HTML文件,而不是“它”(不确定它是Eclipse还是Maven)重新编译我的应用程序。我理解通常Eclipse会尝试使用Eclipse和Tomcat对新编译的Java类进行热替换。
我可以使用这样的东西吗?
getResourceSettings().setResourcePollFrequency(null);
我知道我可以在Eclipse中为Tomcat关闭自动更新,但是我希望更新HTML文件,并且如果可能的话不要更新类。
BTW,我主要担心的是Tomcat在重新加载太多java类之后会出现Perm gen错误。答案 0 :(得分: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
我不确定如何防止wicket重新加载HTML文件,但我会看看是否可以找到它。
编辑: 如果将轮询频率设置为null不起作用,请尝试使用Duration.MAXIMUM。此外,你可以在eclipse项目菜单中取消选中“自动构建”,虽然这更麻烦然后它值得,恕我直言。
根据wicket FAQ,wicket仅在您明确设置资源轮询频率时重新加载已更改的标记文件:
http://www.wicketframework.org/faqs.html
除了自动禁用构建之外,我不确定如何防止eclipse将更改的文件复制到输出。
答案 1 :(得分:1)
如果启用了自动构建(默认情况下为:Project-> Build Automatically),那么对项目文件的任何修改都将触发构建,无论它们是否在源文件夹中。
我总是使用自动构建禁用,因为我觉得它太过于干扰(出于这样的原因),当我想要构建项目时,只需点击 ctrl-B 或 alt-P N 以在需要时启动干净对话框。
答案 2 :(得分:1)
你是正确的,你应该使用setResourcePollFrequency(Duration.ONE_SECOND);
或类似的。 This link has more detailed information。然而,我发现由于Wicket的缓存内部缓存容器在任何hotswapping之后变得非常混乱所以你可能只需要学习热键来重启Tomcat或者开始使用集成的Jetty和WicketTester进行Wicket开发。
答案 3 :(得分:0)
我知道您正在使用(并且可能希望继续使用)Tomcat,但在Wicket开发期间,您可以在调试模式下运行提供的Jetty服务器onder /src/test/java/com/your/package/Start.java获取此行为..将Wicket设置为开发模式以使用此功能。
答案 4 :(得分:0)
HTML文件或jsp文件?
你正在使用tomcat吗?如果您只编辑html文件,请继续并根据需要进行更改。只要你不在其他地方部署它们以便tomcat获取它们,你就会看到更新。如果是jsp,请保存新文件,删除旧工作文件夹下的文件。这将使tomcat认为这是第一次请求文件,它将动态重新编译jsp。