Включение отладки 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}">

1 ответ

Решение

Краткий ответ: Да, вы можете оставить debuglevel приписывать, пока вы устанавливаете debug приписывать true,

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

отлаживать

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

DebugLevel

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

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

Другие вопросы по тегам