【问题标题】:GAE plugin or GAE appcfg.cmd are not working with --enable_jar_splitting parameterGAE 插件或 GAE appcfg.cmd 不适用于 --enable_jar_splitting 参数
【发布时间】:2013-04-10 03:34:21
【问题描述】:

我有这个错误信息:

准备部署:在以下位置创建暂存目录: 'C:\Users\leet\AppData\Local\Temp\appcfg4768292050846213939.tmp' 扫描 jsp 文件。编译jsp文件。扫描文件 本地磁盘。 java.io.IOException: 罐子 C:\Users\leet\AppData\Local\Temp\appcfg4768292050846213939.tmp\WEB-INF\lib\appengine-api-1.0-sdk-1.7.7.jar 太大。考虑使用 --enable_jar_splitting。

我发出了这样的命令,但它不适用于 --enable_jar_splitting。

"C:\Program Files\Java\jdk1.7.0_17\bin\java.exe" -Xmx1100m -cp “%~dp0..\lib\appengine-tools-api.jar” com.google.appengine.tools.admin.AppCfg --enable_jar_splitting -e user@domain.com 更新“C:\myfolder\myproject\war”

有什么意见吗?

【问题讨论】:

标签: google-app-engine


【解决方案1】:

已发布 Java App Engine 1.7.7.1 SDK 以解决此 Windows 特定问题。 Google Eclipse 插件以及 Google App Engine Maven 工件和插件已更新(仅使用 1.7.7.1 版本)。

【讨论】:

    【解决方案2】:

    要解决库错误消息,您必须这样做:

    1) 打开您的 Windows 资源管理器并将其定位到您的 eclipse 文件夹中。例如“.\eclipse\plugins\com.google.appengine.eclipse.sdkbundle_1.7.7\appengine-java-sdk-1.7.7\lib\user”。

    2)然后您将看到一个名为“appengine-api-1.0-sdk-1.7.7.jar”的文件,将其重命名为“appengine-api-1.0-sdk-1.7.7.original”。 (只是不要在将来根据需要删除)

    3) 复制您之前创建的 2 个文件 - “appengine-api-1.0-sdk-1.7.7-1.jar”和“appengine-api-1.0-sdk-1.7.7-2.jar”并粘贴到此文件夹中.

    4)切换它的eclipse ide,清理项目并重建它。然后,错误消息就会消失。

    【讨论】:

      【解决方案3】:

      我通过拆分我自己的“appengine-api-1.0-sdk-1.7.7.jar”文件解决了这个问题。

      如果其他人想知道如何操作,请按照以下步骤操作

      1) 从 7z 解压缩“appengine-api-1.0-sdk-1.7.7.jar”文件。

      2) 将它们平衡到 2 个文件夹中(每个文件夹大约 15mb),无论结构如何。

      3) 将第一个文件夹命名为“appengine-api-1.0-sdk-1.7.7-1”,将第二个文件夹命名为“appengine-api-1.0-sdk-1.7.7-2”。

      4)确保你已经安装了jdk。例如“C:\Program Files\Java\jdk1.7.0_17\bin”。将其设置为环境,以便您可以从该 bin 文件夹运行文件。

      5) 重要提示:您必须进入第一个“appengine-api-1.0-sdk-1.7.7-1”文件夹,而不是这些文件夹的父文件夹。

      6) 启动 cmd.exe 并为第一个存档键入“jar cf appengine-api-1.0-sdk-1.7.7-1.jar *”。

      7) 对第二个存档再次执行相同操作(重复第 5 步和第 6 步)。

      8) 进入\war\web-inf\libs文件夹,删除已有的appengine-api-1.0-sdk-1.7.7.jar。

      9) 将 appengine-api-1.0-sdk-1.7.7-1.jar 和 appengine-api-1.0-sdk-1.7.7-2.jar 复制并粘贴到 \war\web-inf\libs 文件夹中。

      10) 现在部署它。它应该像魅力一样工作!

      编辑: 拼写更正。

      【讨论】:

        【解决方案4】:

        使用该指令:

        To clarify, we're going to release a minor update for 1.7.7. For the
        meantime, you can re-jar the file as follows:
        
        cd to the working directory
        $ jar xf somewhere\appengine-java-sdk-1.7.7\lib\user\
        appengine-api-1.0-sdk-1.7.7.**jar
        $ jar cfm somewhere\appengine-api-1.0-sdk-1.7.7.**jar META-INF/MANIFEST.MF *
        and replace the old jar with the newly created one.
        

        来自http://www.mail-archive.com/google-appengine@googlegroups.com/msg67954.html 以及来自此处解决方案的消息,我能够使它像这样工作:

        打开命令行并进入 JAVA 安装的 bin 目录,jar.exe 文件所在的位置

        cd "C:\Program Files\Java\jdk1.7.0_17\bin\"
        

        然后,您需要在计算机的某个位置找到“appengine-api-1.0-sdk-1.7.7.jar”文件。它位于 Eclipse 项目的 \war\WEB-INF\lib 文件夹以及 Eclipse 安装的“plugins”文件夹中的 2 个位置(不包括临时目录)。正是那里:\plugins\com.google.appengine.eclipse.sdkbundle_1.7.7\appengine-java-sdk-1.7.7\lib\ 您只需要这两条路径之一。

        现在在命令行中输入:

        jar xf "C:\whatever-folder-your-eclipse-is-in\plugins\com.google.appengine.eclipse.sdkbundle_1.7.7\appengine-java-sdk-1.7.7\lib\user\appengine-api-1.0-sdk-1.7.7.jar"
        

        然后

        jar cfm "C:\whatever-folder-your-eclipse-is-in\plugins\com.google.appengine.eclipse.sdkbundle_1.7.7\appengine-java-sdk-1.7.7\lib\user\appengine-api-1.0-sdk-1.7.7.jar" META-INF/MANIFEST.MF
        

        现在,如果您转到该文件夹​​并检查 .jar 文件,它现在应该是 11 mb 而不是 30 左右。现在您需要复制这个并替换 \war\WEB-INF\lib\ 的 webapp 文件夹中的相同 jar,以便名为“appengine-api-1.0-sdk-1.7.7.jar”的两个 jar 有 11 mb大小。

        现在错误应该消失了,您不必拆分任何内容。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-05-03
          • 2014-08-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多