31

Google Plugin for Eclipseから公式の Google App Engine Maven Pluginに切り替え中です。最後に理解できないことは、適切なデバッグ ワークフローをセットアップする方法です。GPEを使用していたときは、ブレークポイントを設定しただけでデバッガーが自動的に停止しましたが、開発サーバーを経由して実行するmvn appengine:devserverと、開発サーバーとEclipseがお互いを認識していないと思います。

どうすればお互いに話せるようになりますか?

4

6 に答える 6

46

最初のオプションは、@ https://cloud.google.com/appengine/docs/java/webtoolsplatformに記載されているように、WTP を使用するようにプロジェクトを設定することです。これが私が切り替えた方法です。

2 番目のオプションは、2 つのデバッグ構成を使用することです。

最初のデバッグ構成では、Maven ターゲット、つまりappengine:devserver. ここに画像の説明を入力

2 つ目はRemote Java Application構成で、デバッグ クライアントを devserver jvm に接続します。
ここに画像の説明を入力

これには、いくつかの jvm 引数を maven ゴールに渡す必要もあります。

<!-- GAE plugin -->
<plugin>
    <groupId>com.google.appengine</groupId>
    <artifactId>appengine-maven-plugin</artifactId>
    <version>1.7.5-SNAPSHOT</version>
    <configuration>
        <jvmFlags>
            <jvmFlag>-Xdebug</jvmFlag>
            <jvmFlag>-Xrunjdwp:transport=dt_socket,address=1044,server=y,suspend=y
            </jvmFlag>
        </jvmFlags>
        <disableUpdateCheck>true</disableUpdateCheck>
    </configuration>
</plugin>

これら 3 つの設定が完了したら、maven デバッグ構成を実行し、デバッグ クライアント構成を実行してから、アプリケーションを実行します。

ホットスワップはまだサポートされていないため、リソース以外のファイル (Java ソース) を変更すると、devserver はそれらを認識しません。リソース ファイルがデプロイされます (静的ファイル: html、js)。

于 2013-01-03T16:03:06.880 に答える
1

この質問はあなたに問題のヒントを与えるかもしれません。Maven appengine:devserverは、別のプロセスで開発サーバーを起動します。ただし、EclipseはMavenプロセス自体のみを認識します(これはデバッグビューに表示されるものです)。さらに、開発サーバーはデバッグポートなどの引数で起動できないため、デバッガーに接続できない可能性があります。

リンクされた質問は、引数を取る非公式のMavenGAEプラグインがあることを示唆しています。公式プラグインを強化するための新しいチケットと、プラグイン開発者がこの機能をすぐに実装することを約束するものもあります。

于 2012-12-19T20:54:15.307 に答える
1

Eclipseの統合を容易にするために他に何ができるかを確認しますが、appengine-maven-pluginプロジェクトに提出された問題の更新があります:http ://code.google.com/p/appengine-maven -plugin / issues / detail?id = 3&can = 1なので、jvm引数のサポートが役立つかどうかを確認してください。

あなたの経験を教えてください、私はいつも素晴らしいものに賛成です。

于 2013-01-02T22:40:08.853 に答える
1

デバッグモードEclipseからmvnを実行する必要があります。

ここに画像の説明を入力

Eclipse では、Eclipse のトップ ツールバーの[実行] -> [デバッグ構成] -> [Maven ビルド]から、このような Maven ビルド コマンドを構成できます。

Maven が Eclipse デバッグ モードで起動されると、ブレークポイントに到達できるはずです。

編集- もう 1 つのオプションは、リモート デバッグをセットアップすることです。つまり、「実行」->「デバッグ構成」->「リモート Java アプリケーション」を設定し、リモート デバッグ ポートをリッスンします。つまり、appengine:devserver がリモート デバッグ ポート引数で起動することを確認する必要があります。リファレンス -リモート日食でのデバッグ

于 2012-12-18T03:53:07.713 に答える
1

2015 年に該当する回答

私は 2015 年 9 月に GAE (Java) プロジェクトを作成しました。以下は、このプロジェクトおよび同様のプロジェクトに適用されます。

Apache Maven の使用 - Java - Google Cloud Platformの関連する手順に従って、Skeleton アーキタイプを使用して、通常の GAE Maven プロジェクトと同じようにプロジェクトを作成することから始めました。RequirementsからTesting your app with the development serverまで続きます。

その後、「既存の Maven プロジェクトのインポート」を使用して、このプロジェクトを Eclipse JEE (Mars) にインポートしました。開発開始。

デバッグが必要なときは、以下で説明するいくつかの手順を実行するだけで済みました。

デバッグ構成を作成する

Run -> Debug Configurationsに移動し、Remote Java Applicationをクリックし、 Newボタンをクリックして新しい構成を作成します (スクリーンショット、フィルター テキスト ボックスの左上隅を参照)。

リモート Java アプリケーションの新しいデバッグ構成を作成する

以下に示すように、特定のプロジェクトを選択し、構成に適切な名前を付けて詳細を入力し (ポートを 8000 にします)、 [適用] をクリックします。

デバッグ構成の設定

pom.xml のいくつかの行のコメントを外します

プロジェクトの pom.xml で、プラグインの構成を見つけてappengine-maven-plugin、次の行のコメントを外します。

                <jvmFlags>
                    <jvmFlag>-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n</jvmFlag>
                </jvmFlags>

mvn appengine:devserverコマンドラインからコマンドを実行する

タイトルの通り…

Eclipse 内からデバッガーをアタッチする

[デバッグ] のボタンの横にある小さな下向きの三角形をクリックし、設定したばかりのデバッグ構成の名前を選択します (この例では "HelloWorldServlet")。

于 2015-11-25T07:48:55.037 に答える
0

以前の方法を支持して、 @ developers.google.com/appengine/docs/java/webtoolsplatformの手順に大まかに従います。

于 2014-07-22T14:26:00.107 に答える