为Apache ANT启用javac调试

min*_*az1 21 java xml apache ant build

只是一个简单的问题.对于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}">
Run Code Online (Sandbox Code Playgroud)

Chr*_*ert 24

简答:是的,只要将debuglevel属性设置为,就可以将属性保留debugtrue.

javac Ant task文档:

调试

指示是否应使用调试信息编译源; 默认为关闭.如果设置为off,则-g:none将在命令行上传递给支持它的编译器(对于其他编译器,将不使用命令行参数).如果设置为true,则debuglevel属性的值确定命令行参数.

DEBUGLEVEL

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

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