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 属性的值将确定命令行参数。

调试级别

要附加到 -g 命令行开关的关键字列表。除了现代,经典(版本> = 1.2)和jikes之外,所有实现都将忽略这一点。合法值是 none 或以下关键字的逗号分隔列表:lines、vars 和 source。如果未指定 debuglevel,默认情况下,不会将任何内容附加到 -g。如果未打开调试,则该属性将被忽略。

因此,设置debugtrue和省略与传递不附加选项debugLevel的标志相同。-g根据javac文档,传递-g不附加任何内容的标志等效于指定源、行和变量。

于 2012-08-09T22:42:15.207 回答