2015-01-21 6 views
5

मेरे प्रोजेक्ट में से एक जावा 1.8 की आवश्यकता है, लेकिन कभी-कभी हमने यह नहीं देखा कि हम पुराने जावा का उपयोग कर रहे हैं ताकि हमें कुछ अजीब त्रुटियां मिलें।ग्रेडल चलाने पर जावा संस्करण कैसे जांचें?

मैं build.gradle में चेकिंग जोड़ना चाहता हूं, ताकि जब हम कोई कार्य चलाते हैं, तो यह पहले संस्करण की जांच करेगा, और त्रुटि प्रिंट करेगा और तत्काल छोड़ देगा।

मैंने पहली पंक्ति पर build.gradle में सीधे जांच जोड़ने की कोशिश की, लेकिन यह अभी भी कुछ अन्य कार्य करता है उदा। (clean, compileJava) से पहले की जाँच होता है, जब मैं चलाएँ:

$ ./gradlew 

कैसे इसे सही ढंग से करना है?

+0

Gradle निर्माण स्क्रिप्ट पार्स और मार डाला के रूप में यह है:

आपको लगता है कि के लिए JavaVersion enum जो Gradle एपीआई का हिस्सा है उपयोग कर सकते हैं। इसलिए यदि आप अपनी जांच सीधे लिपि में डालते हैं, तो कुछ कार्य में नहीं, इसे एक बार में निष्पादित किया जाना चाहिए। क्या आप build.gradle फ़ाइल का प्रासंगिक हिस्सा साझा कर सकते हैं? – Nikem

+0

@Nikem, धन्यवाद, अभी पाया गया है कि परियोजना रूट के तहत 'buildSrc' निर्देशिका है, और इसमें परिभाषित कार्य मेरे चेकिंग कोड से पहले चल रहे हैं। उन्हें पहले – Freewind

+1

@Freewind चलाने के लिए ठीक है, यहां 'buildSrc' का उपयोग करने की आवश्यकता नहीं है। 'Build.gradle' स्क्रिप्ट की शुरुआत में जावा के कोड जांच संस्करण को बस जोड़ें। – Opal

उत्तर

15

यदि आप अपने निर्माण जीवन चक्र में बहुत जल्दी चेक डालते हैं (आपकी build.gradle फ़ाइल की शुरुआत में सादे चेक या प्लगइन की लागू विधि में) आपको किसी भी कार्य को निष्पादित नहीं करना चाहिए।

if(JavaVersion.current() != JavaVersion.VERSION_1_8){ 
    throw new GradleException("This build must be run with java 8") 
} 
+0

इसे जल्द ही चेक किया जा सकता है, जैसे आपकी 'सेटिंग्स .gradle' की शुरुआत में। – eskatos

+0

अच्छी तरह से अगर आप इसे वास्तव में जल्द ही देखना चाहते हैं। इसे एक init स्क्रिप्ट में डाल दें ;-) –

+0

निश्चित रूप से। ध्यान दें कि इनिट स्क्रिप्ट्स या तो आपको अपनी कमांड लाइनों में '--init-script your-script' जोड़ने के लिए मजबूर करती हैं या परियोजना के बाहर ($ HOME या $ GRADLE_HOME) में बैठनी होंगी। Https://docs.gradle.org/current/userguide/init_scripts.html देखें – eskatos

संबंधित मुद्दे