只是一个简单的问题。对于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}">
答案 0 :(得分:23)
简短回答:是的,只要您将debuglevel
属性设置为debug
,就可以保留true
属性。
来自javac Ant task
文档:
<强>调试强>
指示是否应使用调试信息编译源;默认为关闭。如果设置为off,则-g:none将在命令行上传递给支持它的编译器(对于其他编译器,将不使用命令行参数)。如果设置为true,则debuglevel属性的值确定命令行参数。
<强> DEBUGLEVEL 强>
要附加到-g命令行开关的关键字列表。除现代,经典(ver&gt; = 1.2)和jikes外,所有实现都会忽略这一点。合法值为none或以逗号分隔的以下关键字列表:lines,vars和source。 如果未指定debuglevel,则默认情况下不会将任何内容附加到-g。 如果未打开调试,则将忽略此属性。
因此,将debug
设置为true
并省略debugLevel
与传递标记-g
并且不附加选项相同。根据{{3}}文档,传递-g
标志时不附加任何内容等同于指定源,行和变量。