Próbuję zapewnić Gradle jako alternatywny system kompilacji istniejącego projektu. Projekt ten wykorzystuje sun.misc.Unsafe
co prowadzi do ostrzeżeń, takich jak ten:Przekazywanie argumentów kompilatorowi i javadoc w gradle
warning: Unsafe is internal proprietary API and may be removed in a future release
import sun.misc.Unsafe;
Aby stłumić to ostrzeżenie -XDignore.symbol.file
jest przekazywana jako argument do javac i javadoc w bieżącym skrypcie mrówek.
Aby stłumić te ostrzeżenia w Gradle, musiałem uciekać się do tego, co uważam za "brudne" hacki, z którymi nie jestem zbyt zadowolony.
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')
}
Z pewnością musi istnieć bardziej elegancki sposób, którego nie znam, aby to osiągnąć.
Tutaj (https://gist.github.com/3772416) jest bardziej kompletny przykład z towarzyszącym skryptem ant i przykładową klasą, która powoduje problem.
Dzięki
Używam 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
Wydaje się, że jest to rozsądne worakround w tej chwili do tłumienia tych szczególnych ostrzeżeń. Patrz - http://forums.gradle.org/gradle/topics/passing_arguments_to_compiler_and_javadoc?rfm=1
Proszę zawsze podać wersję Gradle. –
Dodałem informacje o wersji zgodnie z zaleceniami. –