3

最近Google App Engineと協力していて、私にとって謎のものに遭遇しました。多分あなたは明確にすることができます。どのApp Engine Maven Pluginを使用しますか?

Googleの自身のウェブサイトの一部(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> 

を使用する必要がありますし、いくつかの他のページ(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> 

を使用する必要があります私はそれを使うべきです。最初に2つのバージョンがあるのはなぜですか?

問題私が直面しています:

両者は異なる目標をサポートするように見えます。 1つは配備などをサポートし、もう1つはupdateとupdate_cronをサポートします。

私はこれら3つの目標をすべて必要としていますが、私はそれらを1つのdependecyで持つことができますか?

ありがとうございます、誰かが私にこれを手伝ってくれることを願っています。

サシャ

答えて

4
<plugin> 
<groupId>com.google.appengine</groupId> 
<artifactId>appengine-maven-plugin</artifactId> 
<version>${appengine.maven.plugin.version}</version> 
</plugin> 

最初のものは、以前の(しかし非推奨しない)appcfg(又はJava SDK)に基づいています。

それは、App Engineは、DEV-サーバーおよび展開と、だけでなく、更新キュー、更新のcron、更新インデックス、真空インデックス、...

<plugin> 
<groupId>com.google.cloud.tools</groupId> 
<artifactId>appengine-maven-plugin</artifactId> 
<version>1.1.0-beta</version> 
</plugin> 

のための基本的なもののために特定のlot of Goalsを提供していますそれはまだベータ版で、最新のものです。それはGCloud SDKに基づいており、限られた目標を持っています。あなただけdev-serverを使用する必要がある場合 :あなたは最新のものが1.0.0で、Mavenの中央から最新バージョンを見ることができます

Here、私は適切なプラグインを選択する方法1.1.0-betaバージョン

が表示されませんdeployGCloud SDKに基づいて最新のプラグインを使用することができます。

これらの2つの目標は、appcfgベースのプラグインでも利用できますが、もっと具体的な目標(キュー、cron、インデックスなど)が必要な場合は、この最後のものでのみ利用できます。終わりに

にのみ使用可能です

また、Google Cloud Endpoints goalsは、これら2プラグインは、同じプロジェクトに共存することができます。両方を使用するトリックは、短いもの(source)の代わりにゴールフルパスを使用しています。

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

そしてない

  • appengine:run
  • appengine:devserver
  • :たとえば

あなたは短いバージョンを使用する場合(たartifactIdが、両方のプラグインで同じであるため)、Mavenのが適切なのgroupIdを解決することができません

瞬間のために、両方のプラグインが動作すると、非推奨の痕跡はありません約appcfgに基づいています。

私は、Gcloudプラグイン内でdeployを使用しています(appcfgと比較してdeployプロシージャよりもずっと良いと思います)。しかし、cron/queueを更新する必要があるときは、以前のプラグイン。私は自分のプロジェクトの中で両者を持つことに問題はありません

GCloudベースのものを使用する場合は、ローカルマシンにGCloud installed(および設定済み)が必要です。ここで

が同じトピックを議論している別のスレッドです:両方のプラグイン用`gcloud app deploy` vs. `appcfg.py`

+0

両方のプラグインが連続的に更新されます。古いもの:1.9.60 2017年12月、新しいもの; 1.3.2 2017年11月(非常に奇妙な99.99.99バージョンがあります)。一方、Google Docについては、2つのページが個別にあります。古いものはhttps://cloud.google.com/appengine/docs/standard/java/tools/maven、新しいものはhttps:// cloudです。 google.com/appengine/docs/standard/java/tools/using-maven –

+0

このページのhttps://cloud.google.com/appengine/docs/standard/java/tools/migrate-mavenに従ってGoogle com.google.appengine.appengine-mavenをcom.google.cloud.tools.appengine-mavenに移行するための移行方法を提供します。新しいmavenプロジェクトを開始する場合は、新しい方法が良い選択です。 –

+0

彼らは認証が異なるため、Jenkinsからのデプロイメントを設定するときにcom.google.cloud.toolsを使用する必要がありました。 –

0

公式ドキュメントを下にリンクされている:

com.google.appengineのgroupId

com.google.cloud.toolsのgroupId

両方のプラグインがサポートされています。彼らは同じアーティファクトID(appengine-maven-plugin)を持っていますが、目標は異なり、動作が異なります。私はこれがGoogleのソフトウェア進化の悪い組織の別のケースだと思う。彼らは単に単一のプラグインを保持し、環境内の存在を確認し、警告/推奨事項を投稿することによって、あるSDKから別のSDKに透過的に移動できます。

関連する問題