AppEngine Maven插件jarSplittingExcludes

时间:2014-06-04 19:01:09

标签: google-app-engine maven

我正在尝试将stanford-corenlp库包含到我的AppEngine应用程序中,但在上传时遇到“JAR太大”错误:

com.google.appengine.tools.admin.LocalIOException: Jar.../stanford-corenlp-3.3.0-models.jar is too large. Consider using --enable_jar_splitting.
Unable to update app: Jar /tmp/appcfg4516706702870427847.tmp/WEB-INF/lib/stanford-corenlp-3.3.0-models.jar is too large. Consider using --enable_jar_splitting.

正如所建议的那样,我尝试了enable_jar_splitting选项,但是某些个人文件太大而且无法拆分。通过插件文档查看我发现:

jarSplittingExcludes
  User property: appengine.jarSplittingExcludes
  When --enable-jar-splitting is set, files that match the list of comma
  separated SUFFIXES will be excluded from all jars.

所以我试图用这个pom.xml排除一些我没有使用的大文件:

  <plugin>
    <groupId>com.google.appengine</groupId>
    <artifactId>appengine-maven-plugin</artifactId>
    <version>${appengine.target.version}</version>
    <configuration>
        <enableJarSplitting>true</enableJarSplitting>
        <jarSplittingExcludes>englishRNN.ser.gz</jarSplittingExcludes>
    </configuration>
  </plugin>

然而,现在我跑的时候

mvn appengine:update

我明白了:

[INFO] Updating Google App Engine Application
Bad argument: Unknown option: --jar_splitting_excludes
usage: AppCfg [options] <action> [<app-dir>] [<argument>]
...
options:
....
 --enable_jar_splitting
                    Split large jar files (> 10M) into smaller fragments.
 --jar_splitting_excludes=SUFFIXES
                    When --enable-jar-splitting is set, files that match
                    the list of comma separated SUFFIXES will be excluded
                    from all jars.

关于我做错的任何想法?

1 个答案:

答案 0 :(得分:1)

原来是bug。应在1.9.7中修复。您可以克隆开发分支以进行早期访问:

$ git clone https://code.google.com/p/appengine-maven-plugin/
$ cd appengine-maven-plugin
$ mvn install
and change in you pom the plugin version to 1.9.7-SNAPSHOT  (keep the other artifacts the   same, change only for the plugin)