我在尝试部署项目时遇到问题: «发现一个太大而无法上传的jar文件»。脚本尝试上载时会发生此问题 appengine-api-1.0-sdk-1.5.3.jar(15.8 MB虽然只允许10MB文件)。 这个问题自2009年以来就很有名。谷歌问题跟踪器和这里也有很多门票。网上有很多这类消息。但所有这些都指的是两个解决方案:
1)使用--enable_jar_splitting。当然我试过用它。没有成功:
# appengine-java-sdk-1.5.3/bin/appcfg.sh -e some_mail@gmail.com --enable_jar_splitting update project/war
Reading application configuration data...
......
java.lang.IllegalStateException: Found a jar file too large to upload: "/tmp/appcfg4869648953084473935.tmp/WEB-INF/classes/war/WEB-INF/lib/appengine-api-1.0-sdk- 1.5.3.jar". Consider using --enable_jar_splitting.
Unable to update app: Found a jar file too large to upload: "/tmp/appcfg4869648953084473935.tmp/WEB-INF/classes/war/WEB-INF/lib/appengine-api-1.0-sdk- 1.5.3.jar". Consider using --enable_jar_splitting.
Please see the logs [/tmp/appcfg5857347513630341491.log] for further information.
我尝试使用不同版本的SDK(1.4.3,1.5.2和最新的1.5.3)。但是脚本忽略了--enable_jar_splitting选项。
2)将appengine-api-1.0-sdk-1.5.3.jar解压缩到WEB-INF / lib。在这种情况下会出现另一个错误。项目受限于3000个文件。有大约3500个文件。在appengine-api-1.0-sdk-1.5.3.jar存档和我的项目中的100个文件。所以,这个解决方案也不行。
3)我自己找到了3d解决方案。您可以从WEB-INF / lib目录中删除appengine-api-1.0-sdk-1.5.3.jar。它可以工作,但只有在你有简单项目的情况下。但是,如果项目使用谷歌appengine的所有功能,它不起作用。我需要使用数据存储区和其他一些功能。没有appengine-api-1.0-sdk-1.5.3.jar项目可以部署,但它不起作用并在谷歌错误控制台中产生错误(缺少类)。
我已向谷歌发送了一条消息。不幸的是,他们保持沉默。
请帮助我,你聪明的家伙。我将非常感激。希望,有一个小技巧可以让它发挥作用。
答案 0 :(得分:2)
您无需上传API jar - 它是App Engine平台的一部分。无论你改变了什么配置导致SDK尝试上传它,你都应该改回来。
答案 1 :(得分:1)
您可以尝试手动拆分appengine-api-1.0-sdk-1.5.3.jar。