web-dev-qa-db-ja.com

ApacheANTのjavacデバッグを有効にする

簡単な質問です。 ANTビルドの場合、debuglevelパラメーターを完全に省略した場合、すべてのデバッグ情報を使用してコンパイルされますか?または、javacタスクにdebuglevel="lines,vars,source"を含める方がよいでしょうか?可能な限り最大レベルのデバッグを有効にしたい。スニペットは次のとおりです。

<javac srcdir="${dir.source}"
     destdir="${dir.classes}"
     deprecation="${javac.deprecation}"
     debug="${veracode.release.mode}"
     debuglevel="lines,vars,source" <-- should I leave this line out? -->
     optimize="${javac.optimize}">
21
minhaz1

簡単な答え:はい、debuglevel属性をdebugに設定している限り、true属性を省略できます。

javac Ant task ドキュメントから:

デバッグ

ソースをデバッグ情報とともにコンパイルする必要があるかどうかを示します。デフォルトはオフです。 offに設定すると、-g:noneは、それをサポートするコンパイラーのコマンドラインに渡されます(他のコンパイラーの場合、コマンドライン引数は使用されません)。 trueに設定すると、debuglevel属性の値によってコマンドライン引数が決まります。

debugLevel

-gコマンドラインスイッチに追加されるキーワードリスト。これは、modern、classic(ver> = 1.2)、およびjikesを除くすべての実装で無視されます。有効な値は、none、または次のキーワードのコンマ区切りのリストです:lines、vars、およびsource。 debuglevelが指定されていない場合、デフォルトでは、-gには何も追加されません。debugがオンにしない場合、この属性は無視されます。

したがって、debugtrueに設定し、debugLevelを省略することは、オプションを追加せずにフラグ-gを渡すことと同じです。 javac のドキュメントによると、何も追加せずに-gフラグを渡すことは、ソース、行、および変数を指定することと同じです。

24