将Java 7与官方Google Appengine Maven插件结合使用

时间:2013-02-03 17:19:56

标签: java google-app-engine maven maven-plugin java-7

  

我在使用official Maven Plugin和Java 7与Google Appengine时遇到了问题。

配置

我的项目配置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(或者我还能做什么)?

1 个答案:

答案 0 :(得分:5)

App Engine Java 7支持目前适用于受信任的测试人员,尚未公开,您可以在here应用受信任的测试人员。

幸运的是,最新的官方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>