3

我在使用 Google Appengine 的官方 Maven 插件和 Java 7 时遇到问题。

配置

我的项目配置pom.xml很简单:

在属性部分我配置:

<gae.version>1.7.4</gae.version>

后来我使用插件:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.3.2</version>
  <configuration>
    <source>1.7</source>
    <target>1.7</target>
  </configuration>
</plugin>
<plugin>
  <groupId>com.google.appengine</groupId>
  <artifactId>appengine-maven-plugin</artifactId>
  <version>${gae.version}</version>
</plugin>

错误信息

每当我运行时,mvn appengine:update我都会收到以下错误:

无法更新应用程序:应用程序包含 Java 7 类,但尚未设置 --use_java7 标志。

我试图解决它

当然,我试图解决这个问题。跑步

mvn appengine:update --use_java7

或者

mvn appengine:update -D--use_java7

没有帮助,因为该标志不用于 Maven 插件,而是用于appcfg脚本。

如何将标志传递给脚本,以便我可以使用 Java 7(或者我还能做些什么)?

4

1 回答 1

5

App Engine Java 7 支持目前适用于 Trusted Tester,尚未公开,您可以在此处申请 Trusted Tester 。

幸运的是,最新的官方 maven 插件确实实现了这个功能,请参阅AbstractAppCfgMojo.java

... ...

/**
 * Use the App Engine Java 7 runtime for this app.
 *
 * @parameter
 */
protected boolean useJava7;

... ...

if (useJava7) {
  arguments.add("--use_java7");
}

... ...

您可以在 pom.xml 中使用以下插件配置来启用 Java7 支持:

</build>
  <plugins>
    ... ...
    <plugin>
      <groupId>com.google.appengine</groupId>
      <artifactId>appengine-maven-plugin</artifactId>
      <version>${gae.version}</version>
      <configuration>
        <useJava7>true</useJava7>
      </configuration>
    </plugin>
  </plugins>
</build>
于 2013-02-03T20:57:06.053 回答