2012-09-23 14 views
7

में कंपाइलर और जावाडोक के तर्कों को पास करना मैं एक मौजूदा प्रोजेक्ट पर वैकल्पिक बिल्ड सिस्टम के रूप में ग्रैडल प्रदान करने की कोशिश कर रहा हूं।ग्रेडर

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

को दबाने के लिए इस चेतावनी -XDignore.symbol.file वर्तमान चींटी लिपि में javac और जावाडोक लिए एक तर्क के रूप पारित हो जाता है: यह परियोजना जो इस तरह चेतावनी की ओर जाता है sun.misc.Unsafe का उपयोग करता है।

ग्रैडल में इन चेतावनियों को दबाने के लिए मुझे जो महसूस होता है वह मुझे 'गंदे' हैक्स का सहारा लेना पड़ता है जिसे मैं बहुत सहज नहीं हूं।

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') 
} 

निश्चित रूप से एक और शानदार तरीका होना चाहिए जिसे मैं प्राप्त करने के बारे में नहीं जानता।

यहां (https://gist.github.com/3772416) एक साथ वाली चींटी स्क्रिप्ट और एक नमूना वर्ग के साथ एक और पूर्ण उदाहरण है जो समस्या का कारण बनता है।

धन्यवाद

मैं 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 

चला रहा हूँ ऐसा लगता है कि यह इन विशेष चेतावनी को दबाने के लिए इस समय एक उचित worakround है। देखें - http://forums.gradle.org/gradle/topics/passing_arguments_to_compiler_and_javadoc?rfm=1

+1

कृपया हमेशा ग्रैडल संस्करण बताएं। –

+0

मैंने सुझाए गए संस्करण की जानकारी को –

उत्तर

2

जावाडोक के बारे में, निम्नलिखित काम कर सकते हैं:

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

जावा संकलन के बारे में, यह जानना चाहते हैं कि options.fork = true और options.forkOptions.executable = 'javac' अभी भी हाल Gradle संस्करणों (जैसे 1.2) के साथ आवश्यक हैं अच्छा होगा। यदि हां, तो http://forums.gradle.org पर कोई समस्या दर्ज करें।

+0

के रूप में जोड़ा है मैंने 'jFlags' का उपयोग करने का प्रयास किया है और एक 'अपरिचित विकल्प: -XDignore.symbol.file' मैंने ग्रेडल 1.2 में अपग्रेड किया है और मुझे अभी भी' options.fork दोनों की आवश्यकता है। सच 'और 'options.forkOptions.executable =' javac''। मैंने 1.2 के साथ जेएफएलएग की भी कोशिश की है और 1.1 के साथ एक ही परिणाम मिला है, मैं ग्रैडल फ़ोरम पर समस्या उठाउंगा। सहायता के लिए धन्यवाद। –