gwt-dev.jar太大了,无法上传到appengine。 我可以拆分一个jar文件,或者……什么?
我最近不得不将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。
我正在使用谷歌eclipse插件,根据这个问题报告,我不能使用–enable_jar_splitting。 确认!
我能以某种方式手动拆分jar文件吗? 我只需要一小部分东西。 如果没有,我该怎么办?
提取jar子。 您将获得类似于java包层次结构的文件夹结构(例如com / google / gwt / core)。 将整个解压缩的目录结构复制到war / WEB-INF / lib中。 解决了。
在linux上,您可以使用jar -xvf gwt-dev.jar
提取jar。 在Windows上,只需将其重命名为zip并且您可以像普通的zip文件一样将其解压缩(jar文件实际上是伪装的zip文件)
任何大于1MB的单个文件都不会上传到App Engine。
您可以使用Windows命令行:
\path\to\appcfg.cmd --enable_jar_splitting update path\to\war
了解如何在此处创建部署快捷方式。
gwt-user
不应该在生成的jar中,因为它provided
了依赖范围。 或者至少它应该是。 GWT团队成员David Chandler的指示建议使用maven-clean-plugin
从生成的WAR文件中删除jar。
@Robert是对的,你应该在上传前删除gwt-user.jar
。 如果你真的有一个大jar子,请使用@systempuntoout建议的–enable_jar_splitting。 如果你正在使用Maven,那么通过splitJars
参数可以使用maven-gae-plugin等效的--enable_jar_splitting
。
我得到了同样的错误(具有讽刺意味的是,出于同样的原因,gwt-dev.jar添加到WEB-INF / lib以安抚依赖项)。 最后,我能够通过放弃gwt-dev.jar并将xalan.jar添加到WEB-INF / lib来启动应用程序并上传到app引擎。
我认为Peter Knego是对的,最好不要上传gwt-dev.jar