我在使用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(或者我还能做什么)?
答案 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>