Eclipseを使用したANTのデバッグ機能について教えてください。基本的に、同僚が作成したANTビルドスクリプトがあり、呼び出されているさまざまなタスクが何であるかを確認するために、各ターゲットをステップスルーしたいと思っていました。
次の手順でEclipseでこれを行うことができます。
Antは単なるJavaアプリケーションなので、デバッグ構成(タイプJava Application)をEclipseに追加するだけです。 Javaを介したAntの実行 AntをJavaアプリケーションであるかのように呼び出す方法です。JavaアプリをEclipseでデバッグする方法を知っていると仮定します。これで残りの作業は完了です。そうでない場合は、確認してください。
スクリプトを作成するantdebug.sh
環境変数を設定しますANT_OPTS
蟻を始める前に
#!/bin/bash
set -e
export ANT_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=2607"
# now execute ant
exec ant "$@"
その後、IDEを使用してリモート接続できます。 suspend=y
、接続されるまで実行を一時停止します。
大きなantファイル、または大きなJavaプロジェクトの場合、互いに呼び出す複数のantファイルがある場合、依存関係グラフが非常に役立つことがわかりました。私は グランド この目的に。
もちろん、特定のターゲット内の一連の命令をデバッグする場合、これはあまり役に立ちません。
Antの内部を深く掘り下げる前に、-d(デバッグ)フラグを指定してスクリプトを実行し、出力を確認することをお勧めします。 Ant自体ではなく、特定のAntスクリプトがどのように機能しているか(または機能していないか)を理解することに関心があるとします。
Antが関心のある分野である場合、上記の答えは従うべき方向です。
以下のxmlタグをant build.xml
のターゲットinitの後に追加します
<javac srcdir="${src.Java.dir}" destdir="${target.build.dir}" includeantruntime="true" source="${source}" target="${target}" debug="true" debuglevel="lines,vars,source" classpathref="main.classpath" fork="true" memoryinitialsize="512m" memorymaximumsize="512m" />
javacがすでに存在する場合は、debug="true" debuglevel="lines,vars,source"
を追加して、インタラクティブなデバッグセッションを実行してください。