2012-08-09 12 views
17

Po prostu proste pytanie. W przypadku kompilacji ANT, jeśli całkowicie zrezygnuję z parametru debuglevel, zostanie on skompilowany z WSZYSTKIMI informacjami debugowania? A może lepiej byłoby dodać debuglevel="lines,vars,source" do zadania javac? Chcę włączyć maksymalny poziom debugowania. Oto fragment:Włączanie debugowania javac dla Apache ANT

<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}"> 

Odpowiedz

20

Krótka odpowiedź: Tak, można pozostawić debuglevel przypisuje się tak długo, jak ustawić atrybut debug do true.

Z dokumentacji javac Ant task:

debugowania

Wskazuje, czy źródłem powinny być zestawiane z informacjami debug; domyślnie wyłączone. Jeśli jest ustawione na off, -g: none będzie przekazywane w wierszu poleceń dla kompilatorów, które go obsługują (w przypadku innych kompilatorów nie zostanie użyty żaden argument wiersza poleceń). Jeśli ustawione na true, wartość atrybutu debuglevel określa argument wiersza poleceń.

poziomdebugowania

lista słów kluczowych, które należy dołączyć do -g przełącznika wiersza polecenia. Zostanie to zignorowane przez wszystkie implementacje z wyjątkiem nowoczesnych, klasycznych (ver> = 1.2) i jikes. Wartości prawne to none lub rozdzielana przecinkami lista następujących słów kluczowych: linie, vars i źródło. Jeśli poziom debugowania nie jest określony, domyślnie nic nie będzie dołączane do -g. Jeśli debugowanie nie jest włączone, ten atrybut zostanie zignorowany.

Dlatego ustawienie debug do true i pomijając debugLevel jest taka sama jak przepuszczanie flagę -g bez załączonych opcji. Zgodnie z dokumentacją javac podanie flagi -g z brakującym dodatkiem jest równoważne określeniu źródeł, linii i zmiennych.

Powiązane problemy