一尘不染

为Apache ANT启用Javac调试

java

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

阅读 237

收藏
2020-12-03

共1个答案

一尘不染

简短的回答:是的,你可以离开debuglevel属性了,只要你设置debug属性true

javac Ant task文档中:

调试

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

debugLevel

要附加到-g命令行开关的关键字列表。所有这些实现都将被忽略,除了Modern,Classic(ver> =
1.2)和jikes之外。合法值是无或以下关键字的逗号分隔列表:行,变量和源。
如果未指定debuglevel,则默认情况下,-g将不添加任何内容。
如果未打开调试,此属性将被忽略。

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

2020-12-03