使用哪个App Engine Maven插件?

maj*_*boo 7 java google-app-engine maven-plugin maven appengine-maven-plugin

最近我一直在使用Google App Engine,偶然发现了一些对我来说很神秘的事情,也许你可以澄清一下.

根据谷歌自己的一些网站(https://cloud.google.com/appengine/docs/java/tools/maven)你应该使用

<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>${appengine.maven.plugin.version}</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)

并根据其他一些页面(https://cloud.google.com/appengine/docs/java/tools/maven-reference)你应该使用

<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>1.1.0-beta</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)

现在我真的很困惑我应该使用哪个.为什么首先有两个版本?

我面临的问题:

两者似乎都支持不同的目标.一个支持部署等,另一个支持update和update_cron.

我需要所有这三个目标,无论如何我可以拥有一个依赖目标吗?

在此先感谢,希望有人可以帮助我.

萨沙

Dev*_*ter 6

<plugin>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>${appengine.maven.plugin.version}</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)

第一个是基于之前的(但未弃用)appcfg(或Java SDK).

它提供了许多专用于App Engine 的目标,基本的是dev-server和deploy,还有更新队列,更新cron,更新索引,真空索引,......

<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>appengine-maven-plugin</artifactId>
<version>1.1.0-beta</version>
</plugin>
Run Code Online (Sandbox Code Playgroud)

这是最新的,仍处于测试阶段.它基于GCloud SDK并且具有有限的目标.

在这里你可以看到Maven Central的最新版本,最新版本是1.0.0,我看不到1.1.0-beta版本

如何选择合适的插件:如果你只需要使用dev-server,deploy你可以使用最新的插件GCloud SDK.

这两个目标也可以在appcfg基础插件中使用,但如果您需要更多特定目标(如处理队列,cron,索引......),则只能使用最后一个目标.

此外,谷歌云端点的目标,只提供给了appcfg一个

最后,这两个插件可以在同一个项目中共存.使用它们的技巧是使用目标完整路径而不是短路径().

例如:

  • com.google.cloud.tools:appengine-maven-plugin:run
  • com.google.appengine:appengine-maven-plugin:devserver

并不是

  • appengine:run
  • appengine:devserver

如果你使用较短的版本,Maven无法解析正确的groupId(因为artifactId在两个插件上是相同的)

目前这两个插件都是可操作的,并且没有关于appcfg基础插件的弃用迹象.

以我为例,我总是在GCloud插件中使用部署(我认为它与appcfg插件程序相比稍微好一点),但是当我需要更新cron/queues时,我使用上一个插件的目标.我在项目中同时使用它们没有任何问题

请记住,如果要使用基于GCloud的GCloud,则需要在本地计算机上安装(和配置)GCloud.

这是另一个讨论相同主题的线程:`gcloud app deploy`与`appcfg.py`