6

私の現在の開発プロセスは、Java コードの変更、mvn パッケージ、ant の更新、Tomcat サーバーの再起動です。ブレークポイントを追加して、DSpace インスタンスをライブでデバッグできるようにしたいと思っています。最近、oceanlink コードの問題に遭遇し、デバッグしたかったのですが、変数を表示するには println / log info に頼らなければなりませんでした。

私は wiki ページに精通しています: https://wiki.duraspace.org/display/DSPACE/IDE+Integration+-+DSpace+and+IDEA

この件に関して、より凝縮された最近のガイダンスがあるかどうか疑問に思っていました。

4

2 に答える 2

6

IDEA での開発者のセットアップを説明するビデオ ウォークスルーを作成しました: https://www.youtube.com/watch?v=mrLl1qPsy6I

ビデオの終わり近くで、デプロイするモジュールと、コンテキスト パスを配置する方法を示します。

前回のビデオから 2 年も経たないうちに、ついにデバッグ ビデオが公開されました: https://www.youtube.com/watch?v=V5Zi71zYmf8

ビデオで取り上げられていない非常に強力な機能の 1 つは、「式の評価」です。プログラムがブレークポイントで一時停止している場合、「式の評価」を使用して、プログラムの現在の状態で任意のメソッド呼び出しを実行できます。

于 2014-10-04T19:41:49.147 に答える
3

Bram はこのトピックに関する優れたチュートリアルを提供しています。私が推奨できるもう 1 つの戦略は、セットアップがより高速になる場合があるリモート デバッグです。

目標は、Tomcat または DSpace CLI で、既存のデプロイされた DSpace Web アプリケーションで「リモート デバッグ モード」に入ることです。その後、Intellij に埋め込まれた tomcat を構成せずに直接アタッチできます。localhost を使用してローカルで、または既存の開発サーバーのホスト名/IP に対してネットワーク経由でリモートで完了することができるため、これは素晴らしいことです。

  1. [実行] > [構成の編集] を選択します。
  2. 追加 (+) オプション > リモートを選択します
  3. リモート設定を構成し、実行中の tomcat または cli ホストの場所に適切なホスト/ポート構成を設定し、適切な名前を指定します (DSpace Remote)
  4. 最初のテキスト ボックスの設定を tomcat または CLI インスタンスの env 設定にコピーします。

    -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
    

    4.a. [DSACE_HOME]/bin/dspace の DSpace CLI の場合、java コマンドの直前に次の行を追加します (アプリケーションの実行前にデバッグ ポートに接続できるようにするために、suspend を y に設定していることに注意してください。

    export JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"
    

    4.b Tomcat 構成の場合、Tomcat catalina.sh スクリプトで既に提供されている環境設定をエクスポートして、Tomcat をデバッグ モードで起動します。(Tomcat が適切に起動できるように、suspend を n に設定していることに注意してください。

    export JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
    %TOMCAT_HOME%/bin/catalina.sh jpda start
    
  5. CLI アプリまたは Tomcat を起動したら、構成済みのデバッグ設定を接続できます。最初に、ツールバーの [実行/デバッグ] ドロップダウンからデバッグ構成を選択し、[デバッグ] アイコンを使用してデバッグ モードで開始します。

これにより、デバッグ ポートに接続されます (問題がある場合は、ファイアウォールの制限を確認してください)。これで、ブレークポイントを設定し、サーバー上で実行中に Intellij でコードをステップスルーできるはずです。

実行中の tomcat/cli アプリケーションに変更を反映させるには、mvn build/ant deploy 全体を完了する必要があることに注意してください。開発者のターンアラウンドを早めるには、war/cli を intellij で直接実行するのが最善であり、その目的には Bram のチュートリアルを使用するのが優れています。ただし、これが不可能な場合、これは既存のライブ テスト サイトでデバッグできる優れた代替手段です。

乾杯、マーク

于 2014-10-05T20:20:13.803 に答える