为 Apache ANT 启用 javac 调试

2022-09-02 04:01:21

只是一个简单的问题。对于 ANT 构建,如果我完全省略参数,它会编译所有调试信息吗?还是包含在javac任务中会更好?我想启用可能的最高调试级别。下面是一个代码段:debugleveldebuglevel="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

简短回答:是的,只要您将属性设置为 .,就可以省略该属性。debugleveldebugtrue

来自 javac Ant 任务文档:

调试

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

调试级别

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

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


答案 2

推荐