我最近不得不将gwt-dev.jar添加到我的/ war / WEB-INF / lib目录中,现在当我尝试部署到appengine时,我得到:
java.lang.IllegalStateException: 发现一个太大而无法上传的jar文件: “C:\ DOCUME〜1 \ ADMINI〜1个\ LOCALS〜1 \ TEMP \ appcfg997121487626565419.tmp \ WEB-INF \ lib中\ GWT-dev.jar”。考虑使用--enable_jar_splitting。
我正在使用google eclipse插件,根据this issue report,我无法使用--enable_jar_splitting。的Ack!
我能否以某种方式手动拆分jar文件?我只需要一小部分东西。如果没有,我该怎么办?
答案 0 :(得分:3)
提取罐子。您将获得类似于java包层次结构的文件夹结构(例如com / google / gwt / core)。将整个解压缩的目录结构复制到war / WEB-INF / lib中。解决。
在linux上,您可以使用jar -xvf gwt-dev.jar
提取jar。在Windows上,只需将其重命名为zip并且您可以像普通的zip文件一样将其解压缩(jar文件实际上是伪装的zip文件)
任何大于1MB的单个文件都不会上传到App Engine。
答案 1 :(得分:2)
答案 2 :(得分:1)
gwt-user
不应该出现在生成的jar中,因为它的依赖范围是provided
。或者至少它应该是。 instructions from David Chandler, part of the GWT team建议使用maven-clean-plugin
从生成的WAR文件中删除jar。
答案 3 :(得分:1)
@Robert是对的,您应该在上传前删除gwt-user.jar
。如果你真的有一个大罐子,请使用@systempuntoout建议的--enable_jar_splitting
。如果您使用的是Maven,则--enable_jar_splitting
可通过splitJars
参数与{{1}}相当。
答案 4 :(得分:0)
我得到了同样的错误(具有讽刺意味的是,出于同样的原因,gwt-dev.jar添加到WEB-INF / lib以安抚依赖项)。最后,我能够启动应用程序并通过放弃gwt-dev.jar并将xalan.jar添加到WEB-INF / lib来上传到app引擎。
我认为Peter Knego是对的,最好不要上传gwt-dev.jar