令人难以置信的是,这个问题仍然存在,谷歌不解决它。
你更新了sdks(gwt / gae)和eclipse插件,并且BANG !!你不能再部署了。
java.io.IOException: Applications are limited to 157286400 bytes of resource files, you have 212487584.
但现在我将帮助Google找到解决此问题的真正最终解决方案。
首先,以下是一些遇到过同样问题的人:
我个人在2011年遇到了这个问题:
groups.google.com/forum/#!searchin/google-appengine/application$20size$20limit/google-appengine/Xe2nX1MYKEE/B24as7k8ubwJ
其他人:
groups.google.com/forum/#!msg/nimbits/FY02Yq6lyMk/DWa5N-gzo7sJ
code.google.com/p/googleappengine/issues/detail?id=7676
comments.gmane.org/gmane.org.google.gwt/60935
问题不在于应用程序的大小。它是eclipse插件的一些bug。 我知道这次因为我在sdks和插件更新之前恢复了我的eclipse的备份。我可以正常部署(同一个项目没有任何改动)。我只更新了gwt sdk,是的,我可以部署。比我更新了appengine sdk,是的,我可以部署。但是,如果我去eclipse插件而不是我不能。
这是问题的可能原因。我创建了eclipse插件的snipet代码,在此链接上生成消息: http://code.google.com/p/googleappengine/source/browse/trunk/java/src/main/com/google/appengine/tools/admin/AppVersionUpload.java?spec=svn450&r=450
if (resourceTotal > resourceLimits.maxTotalFileSize()) {
throw new LocalIOException("Applications are limited to "
+ resourceLimits.maxTotalFileSize() + " bytes of resource files, "
+ "you have " + resourceTotal + ".");
}
在同一页面上,您可以看到变量resourceTotal是目录中文件大小的总和,表示一个名为basepath的变量,该变量由此方法启动:
private File getBasepath() {
File path = app.getStagingDir();
if (path == null) {
path = new File(app.getPath());
}
}
我认为问题出在这里。它使用临时目录(在更新之前创建的临时目录),但如果由于某种原因它返回null,它使用的应用程序路径当然要大得多,而不是上传到gae的内容。我认为它应该给出一个错误而不是这种可以结束限制配额的处理。
希望这可以在将来帮助某人。我刚刚失去了2天的工作原因。我有这两个版本的eclipse问题,没有它,如果有人需要aditional信息,并希望谷歌纠正这一点,因为有一天我需要升级插件。
[], 罗德里戈。