为Apache ANT启用javac调试

时间:2012-08-09 20:10:08

标签: java xml apache ant build

只是一个简单的问题。对于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}">

1 个答案:

答案 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标志时不附加任何内容等同于指定源,行和变量。