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
目录。
答案 0 :(得分:4)
1GB对于开发来说太多了。 我能想到的唯一原因是你在.gwt.xml文件中设置了很多排列。 您应该将开发过程中的排列数量减少到最小(仅包括您使用的规格)。 您可以使用 DevGuideCompileReport 来查找问题。
编辑:
其他用户已报告常见问题。它与eclipse插件有关,不能正确删除临时文件。这个问题已经被报道,并且受到了GWT用户的大量关注,但没有发布具体的补丁。 解决方法是手动删除文件或编写脚本来为您完成工作:
答案 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