GWT DevMode填充tmp目录

时间:2013-08-25 09:07:57

标签: gwt

GWT 2.5.1

任何时候运行GWT DevMode现在都会在/tmp目录下生成一个新的巨大缓存文件,因此OS会警告low disk space。但是,这个问题在过去从未出现过。

文件gwtXXXbyte-cache(XXX是一个长随机数)差不多是1 GB big。这是正常的吗?

DevMode会话结束后,将自动清除缓存文件。顺便说一句,重启机器没有帮助。

@EDIT

上面的比较,在DevMode上运行GWT starter application会生成关于50 MB size的新缓存文件。它也超大吗?

@EDIT 2

我修改了GWT UI相关源代码并再次运行DevMode。稍后,新的巨大缓存文件gwtYYYbyte-cache(YYY是另一个长随机数)是使用same size生成的 - 确切的字节数。有什么想法吗?

@EDIT 3

手动删除./gwt-unitCache./war/WEB-INF/deploy./war/ZZZ目录(ZZZ是DevMode上托管的GWT应用程序)后,下一个DevMode会话生成/tmp/gwtXXXbyte-cache文件缩小为a few KB

@EDIT 4

使用选项DevMode启动-workDir DDD(DDD是另一个可写目录)不起作用。缓存的人员继续写入默认的/tmp目录。

2 个答案:

答案 0 :(得分:4)

1GB对于开发来说太多了。 我能想到的唯一原因是你在.gwt.xml文件中设置了很多排列。 您应该将开发过程中的排列数量减少到最小(仅包括您使用的规格)。 您可以使用 DevGuideCompileReport 来查找问题。

编辑:

其他用户已报告常见问题。它与eclipse插件有关,不能正确删除临时文件。这个问题已经被报道,并且受到了GWT用户的大量关注,但没有发布具体的补丁。 解决方法是手动删除文件或编写脚本来为您完成工作

google-plugin-for-eclipse-issue74

答案 1 :(得分:2)

这是一个在GWT后清理的Windows批处理脚本:

@ECHO OFF

ECHO Cleaning ImageResourceGenerator files ...
IF EXIST "%TEMP%\ImageResourceGenerator*" DEL "%TEMP%\ImageResourceGenerator*" /F /Q

ECHO Cleaning uiBinder files ...
IF EXIST "%TEMP%\uiBinder*" DEL "%TEMP%\uiBinder*" /F /Q

ECHO Cleaning gwt files ...
IF EXIST "%TEMP%\gwt*" DEL "%TEMP%\gwt*" /F /Q

ECHO Cleaning gwt directories ...
FOR /D /R %TEMP% %%x IN (gwt*) DO RMDIR /S /Q "%%x"

ECHO.
ECHO Done.
PAUSE