2012-09-23 13 views
7

Estoy tratando de proporcionar Gradle como un sistema de compilación alternativo en un proyecto existente. Ese proyecto hace uso de sun.misc.Unsafe que conduce a las advertencias como ésta:Pasando argumentos al compilador y javadoc en gradle

warning: Unsafe is internal proprietary API and may be removed in a future release 
import sun.misc.Unsafe; 

Para suprimir esta advertencia -XDignore.symbol.file se pasa como argumento a javac y javadoc en el guión hormiga actual.

Para suprimir estas advertencias en Gradle tuve que recurrir a lo que siento que son "sucios" hacks con los que no estoy demasiado cómodo.

apply plugin: 'java' 

compileJava { 
    // I only managed to get this working when I forked 
    // and passed 'javac' as an executable 
    options.compilerArgs << '-XDignore.symbol.file' 
    options.fork = true 
    options.forkOptions.executable = 'javac' 
} 


javadoc { 
    // These get ignored 
    // options.addStringOption('XDignore.symbol.file', null) 
    // options.addStringOption('XDignore.symbol.file') 

    // This one fails the build - I am assuming it's trying to parse '' 
    // options.addStringOption('XDignore.symbol.file') 

    // This works, but it's an ugly hack 
    options.addStringOption('XDignore.symbol.file', '-quiet') 
} 

Sin duda debe haber una manera más elegante que no sé para lograr esto.

Aquí (https://gist.github.com/3772416) es un ejemplo más completo con un guión ant asociado y una clase de muestra que causa el problema.

Gracias

estoy corriendo Gradle 1,1

------------------------------------------------------------ 
Gradle 1.1 
------------------------------------------------------------ 

Gradle build time: Tuesday, 31 July 2012 13:24:32 o'clock UTC 
Groovy: 1.8.6 
Ant: Apache Ant(TM) version 1.8.4 compiled on May 22 2012 
Ivy: 2.2.0 
JVM: 1.7.0_07 (Oracle Corporation 23.3-b01) 
OS: Linux 3.2.0-30-generic amd64 

Parece que este es un worakround razonable en el momento de la supresión de estas advertencias particulares. Ver - http://forums.gradle.org/gradle/topics/passing_arguments_to_compiler_and_javadoc?rfm=1

+1

Indique siempre la versión de Gradle. –

+0

Agregué la información de la versión como sugerido –

Respuesta

2

En cuanto Javadoc, la siguiente podría funcionar:

javadoc.options.jflags "-XDignore.symbol.file" 

En cuanto a la compilación de Java, sería bueno saber si options.fork = true y options.forkOptions.executable = 'javac' aún se requieren con las últimas versiones Gradle (por ejemplo 1.2). En caso afirmativo, presente un problema al http://forums.gradle.org.

+0

He intentado usar 'jFlags' y obtuve una opción' No reconocida: -XDignore.symbol.file' He actualizado a Gradle 1.2 y todavía necesito ambas 'options.fork = true' y 'options.forkOptions.executable = 'javac''. También probé jFlags con 1.2 y obtuve el mismo resultado que con 1.1 Plantearé el problema en el foro de Gradle. Gracias por ayuda. –

Cuestiones relacionadas