ग्रैडल निर्माण का उपयोग करके इंटेलीज आईडीईए में ग्रैडल निर्भरता प्राप्त करना


140

इंटेलीज आईडीईए के अंदर से भी ग्रेड निर्माण, "बाहरी पुस्तकालयों" फ़ोल्डर में निर्भरताएं नहीं डालते हैं, इसलिए ये कक्षाएं संपादक में सुझाव के रूप में दिखाई नहीं देती हैं और जब मैं मैन्युअल रूप से उन्हें आयात के रूप में जोड़ता हूं तो एक संकलन त्रुटि होती है।

उदाहरण के लिए, मैं अपनी बिल्ड.gradle फ़ाइल में निर्भरता को स्वचालित रूप से शामिल करने के लिए IntelliJ कैसे प्राप्त कर सकता हूं :

compile 'com.google.code.gson:gson:1.7.2


2
प्रॉजेक्ट को एक प्रॉजेक्ट प्रोजेक्ट के रूप में आयात करें, सुनिश्चित करें कि आपके पास कॉन्टेले सपोर्ट सक्षम है।
एम। दीनुम

जवाबों:


192

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

वैकल्पिक रूप से इस के साथ gradle से प्रोजेक्ट फाइल्स जेनरेट करें:

build.gradle:

apply plugin: 'idea'

और फिर चलाएं:

$ gradle idea

यदि आप निर्भरता को संशोधित करते हैं तो आपको फिर से उपरोक्त को फिर से चलाने की आवश्यकता होगी।


apply plugin: 'idea'किसी भी मामले में जोड़ा जाना चाहिए।
पीटर निडरवेइसर

@PeterNiederwieser - यदि आप आइडिया से आयात कर रहे हैं, तो इसका क्या प्रभाव पड़ता है?
tddmonkey

यह IntelliJ सेटअप (उदाहरण के लिए JDK का उपयोग करने के लिए) के विभिन्न पहलुओं को कॉन्फ़िगर करने की अनुमति देता है, जिसे आयात द्वारा सम्मानित किया जाना चाहिए। यदि आपके बिल्ड में ऐसा कोई कॉन्फ़िगरेशन नहीं है, तो प्लगइन को लागू करना आवश्यक नहीं हो सकता है (मैंने कभी भी इसके बिना प्रयास नहीं किया है)।
पीटर निडरवेइसर

धन्यवाद, यह जानकर अच्छा लगा, मैं विशेष रूप से मेरे लिए प्रोजेक्ट फाइलों को उत्पन्न करने के लिए ग्रेडेल का उपयोग करता हूं, इसलिए ऐसा करने की आवश्यकता कभी नहीं हुई
tddmonkey

प्रोजेक्ट फ़ाइलों को बनाते समय समान रहता है, सिवाय इसके कि प्लगिन लागू करना निश्चित रूप से उस मामले में वैकल्पिक नहीं है।
पीटर नीडेरवीसर

189

निर्भरता जोड़ने के बाद "ग्रैडल" खोलें ('देखें' -> टूल विंडोज-> ग्रैडल) टैब और हिट "रिफ्रेश" करें

जोड़ने का उदाहरण (संकलन 'io.reactivex: rxjava: 1.1.0'):

ताज़ा करें

यदि आइडिया अभी भी निर्भरता को हल नहीं कर सकता है, इसलिए संभवतः यह निर्भरता mavenCentral () रिपॉजिटरी में नहीं है और आपको रिपॉजिटरी जोड़ने की आवश्यकता है जहां यह निर्भरता रिपॉजिटरी में स्थित है {}


13
लेकिन ऐसा लगता है कि यह काम नहीं करता है। मैंने एक निर्भरता को जोड़ा और ताज़ा किया, लेकिन जब मैं लाइब्रेरी को एक्सएमएल या जावा सोर्स कोड में आयात करने की कोशिश करता हूं, तो आईडिया इसे हल नहीं कर सकता।
AuBee

3
मेरे लिए काम किया। शुक्र है, यहां तक ​​कि विचार ग्रेड प्लगइन का उपयोग किए बिना।
galeale

2
@ABBee: मैं एक ही समस्या थी। जब मैं कमांड लाइन से ग्रैडल का उपयोग कर रहा था, तो यह चला गया था।
थॉमस

@ थोमस हां। CLI का हमेशा अधिक नियंत्रण होता है
एंड्री

@AuBee यदि आइडिया निर्भरता को हल नहीं कर सकता है, तो संभवतः यह निर्भरता mavenCentral () रिपॉजिटरी में नहीं है और आपको रिपॉजिटरी में रिपॉजिटरी जोड़ने की भी जरूरत है {}
एंड्री

20

build.gradleनिम्नलिखित स्क्रीन के साथ प्रस्तुत किए जाने पर IntelliJ IDEA में मौजूदा ग्रैडल प्रोजेक्ट (a ) के साथ आयात करते समय, बाहरी मॉडल से आयात का चयन करें -> ग्रैडल

बाहरी मॉडल से आयात परियोजना

वैकल्पिक रूप से, नई निर्भरताओं को स्वचालित रूप से आयात करने के लिए अगली स्क्रीन पर ऑटो आयात का चयन करें ।


3
वास्तव में, इस उत्तर ने मेरी समस्या को हल कर दिया और उपरोक्त वास्तविक सही उत्तर से पहले आपको पहली चीज करनी चाहिए।
क्विकइंक्ट्स

3
यह एकमात्र समाधान है जो वास्तव में काम करता है और सही है। केवल विचार के लिए gradle.properties में कुछ जोड़ना सादा गलत है।
user219882

मैं मूल आयात पर इस चरण को निष्पादित किए बिना सिंटैक्स हाइलाइटिंग और ऑटो-पूर्ण काम करने में असमर्थ था। आप इसे फिर से आयात किए बिना ठीक कर सकते हैं लेकिन यह बहुत आसान है, कम से कम एक छोटी परियोजना पर।
एड नॉरिस

@ user219882 - अपने बिल्ड "प्लेन गलत" में कुछ क्यों जोड़ रहा है?
tddmonkey

@tddmonkey क्योंकि एक उपयोगकर्ता जिस आईडीई का उपयोग करना चुनता है वह यह बताने के लिए अप्रासंगिक है कि एक निर्माण कैसे होता है।
Qix - मोनिका ने

11

उन लोगों के लिए जो "निर्भरता को हल करने में असमर्थ" त्रुटि प्राप्त कर रहे हैं:
"ऑफ़लाइन मोड" को बंद करें
('देखें' -> टूल विंडोज-> ग्रेडल)

ढाल खिड़की


5

एंड्रे की उपरोक्त पोस्ट अभी भी 2017 के 3 तिमाही के इंटेलीज के नवीनतम संस्करण के लिए मान्य है। इसलिए इसका उपयोग करें। 'क्योंकि, बिल्ड प्रोजेक्ट, और एक्सटर्नल कमांड लाइन ग्रेडल बिल्ड, इसे इंटेलीज में बाहरी निर्भरता से नहीं जोड़ता है ... पागल जैसा कि लगता है यह सच है। अब केवल अंतर यह है कि यूआई ऊपर से अलग दिखता है, लेकिन फिर भी अपडेट करने के लिए एक ही आइकन का उपयोग किया जाता है। मैं केवल यहां एक उत्तर दे रहा हूं, क्योंकि मैं नए UI का स्नैपशॉट पेस्ट नहीं कर सकता ... मुझे प्रति वोट कोई वोट नहीं चाहिए। एंड्री ने फिर भी सही उत्तर दिया: यहां छवि विवरण दर्ज करें


1

मेरे मामले में, मुझे ग्रेडेल ('व्यू' -> टूल विंडोज-> ग्रेडल) टैब को रिफ्रेश करते समय त्रुटि हो रही थी और "रिफ्रेश" मारा और इस त्रुटि को क्लास जेटग्रैडलप्लगिन के लिए ऐसी कोई संपत्ति उन्नयन नहीं मिला।

५+ के साथ नवीनतम इंटेलीज संगत स्थापित करना था

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.