2012-08-09 6 views
17

Sólo una pregunta sencilla. Para compilaciones ANT, si dejo el parámetro debuglevel completamente fuera, ¿se compilará con TODA la información de depuración? ¿O sería mejor incluir debuglevel="lines,vars,source" en la tarea javac? Quiero habilitar el nivel máximo de depuración posible. He aquí un fragmento:Habilitar depuración javac para 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}"> 

Respuesta

20

Respuesta corta: Sí, puede dejar el debuglevel atribuyen a cabo, siempre y cuando se establece el atributo debug a true.

Desde el javac Ant task documentación:

depuración

Indica si la fuente debe ser compilado con información de depuración; se desactiva por defecto Si se desactiva, -g: none se pasará en la línea de comando para los compiladores que lo soportan (para otros compiladores, no se usará ningún argumento de línea de comando). Si se establece en true, el valor del atributo debuglevel determina el argumento de línea de comando.

debugLevel

lista de palabras clave que se adjunta al interruptor de línea de comandos -g. Esto será ignorado por todas las implementaciones excepto moderno, clásico (ver> = 1.2) y jikes. Los valores legales son ninguno o una lista separada por comas de las siguientes palabras clave: líneas, vars y fuente. Si no se especifica debuglevel, de manera predeterminada, no se agregará nada a -g. Si la depuración no está activada, se ignorará este atributo. , El establecimiento de

Por lo tanto debug a true y omitiendo debugLevel es la misma que pasa la bandera -g sin opciones adjuntas. De acuerdo con la documentación de javac, pasar el indicador -g sin nada anexado equivale a especificar fuentes, líneas y vars.

Cuestiones relacionadas