21

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

<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}">
4

1 に答える 1

24

簡単な答え:はい、属性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には何も追加されません。デバッグがオンになっていない場合、この属性は無視されます。

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

于 2012-08-09T22:42:15.207 に答える