2012-08-09 72 views
17

只是一個簡單的問題。對於ANT構建,如果我完全拋棄debuglevel參數,它會用所有調試信息進行編譯?或者,在javac任務中包含debuglevel="lines,vars,source"會更好嗎?我想啓用可能的最高級別的調試。這裏有一個片段:爲Apache ANT啓用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}"> 

回答

20

簡短的回答:是的,你可以離開,只要你的debug屬性設置爲truedebuglevel屬性了。

javac Ant task文檔:

調試

指示是否來源應調試信息進行編譯;默認爲關閉。如果設置爲off,那麼對於支持它的編譯器,將在命令行上傳遞-g:none(對於其他編譯器,將不會使用命令行參數)。如果設置爲true,則debuglevel屬性的值將確定命令行參數。

DEBUGLEVEL

關鍵詞列表附加到-g命令行開關。除了現代,經典(ver> = 1.2)和jikes之外,所有實現都將忽略這一點。合法值是none或逗號分隔的以下關鍵字列表:行,變量和來源。 如果未指定debuglevel,則默認情況下,-g將不會附加任何內容。如果調試未打開,則該屬性將被忽略。

因此,設置debugtrue並省略debugLevel相同傳遞標誌-g沒有附加選項。根據javac文檔,傳遞-g標誌沒有附加任何東西,相當於指定源,行和變量。