Подтвердить что ты не робот

Включение javac-отладки для Apache ANT

Просто вопрос. Для сборки 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}">
4b9b3361

Ответ 1

Короткий ответ: Да, вы можете оставить атрибут debuglevel до тех пор, пока вы установите для атрибута debug значение true.

Из javac Ant task документация:

отладки

Указывает, должен ли источник компилироваться с информацией об отладке; по умолчанию отключено. Если установлено значение off, -g: none будет передано в командной строке для компиляторов, которые его поддерживают (для других компиляторов не будет использоваться аргумент командной строки). Если установлено значение true, значение атрибута debuglevel определяет аргумент командной строки.

DebugLevel

Список ключевых слов, который будет добавлен в ключ командной строки -g. Это будет проигнорировано всеми реализациями, кроме современных, классических (ver >= 1.2) и jikes. Юридические значения - это ни один или список разделенных запятыми следующих ключевых слов: строки, вары и источник. Если debuglevel не указан, по умолчанию ничего не будет добавлено к -g. Если debug не включен, этот атрибут будет проигнорирован.

Поэтому установка debug в true и опускание debuglevel совпадает с передачей флага -g без добавления дополнительных параметров. Согласно документации javac, передача флага -g без добавления эквивалентна заданию источников, строк и варов.