इंटेलीज प्रोजेक्ट में ग्रैडल सपोर्ट जोड़ने का सबसे अच्छा तरीका


168

मैंने चारों ओर बहुत कुछ देखा है और एक मौजूदा इंटेलीज परियोजना को ग्रैडल में बदलने के लिए सबसे अच्छा समाधान नहीं पाया है। मैं टीम के माहौल में काम करता हूं और वर्तमान में हम .ipr फ़ाइल साझा करते हैं क्योंकि हमारे पास कुछ बिल्ड कॉन्फ़िगरेशन हैं जिन्हें हम ट्रैक करते हैं। हम अंततः ग्रैडल के पक्ष में उन लोगों से छुटकारा पा रहे होंगे, लेकिन जब तक ग्रैडल रूपांतरण नहीं किया जाता है, तब तक मैं चीजों को बहुत ज्यादा खराब नहीं कर सकता।

इसके अलावा, हमारी जावा स्रोत फाइलें मानक के रूप में src / main / java के बजाय src निर्देशिका की जड़ में स्थित हैं।

क्या कोई ऐसा तरीका है जिससे मैं ग्रैडल को अपने प्रोजेक्ट में जोड़ सकूं जो मुझे हटा नहीं देगा और मेरी इंटेलीज परियोजना को फिर से बना देगा और बाकी सभी को पेंच नहीं करेगा जब वे एक गिट पुल करते हैं?


2
अपने स्रोत निर्देशिका के प्रश्न का उत्तर देने के लिए - आपको sourceSets के साथ डिफ़ॉल्ट स्रोत निर्देशिका को ओवरराइड करना होगा । देखें कि हमने MongoDB जावा ड्राइवर में यह कैसे किया: github.com/mongodb/mongo-java-driver/blob/…
Trisha

जवाबों:


208

जोड़ें:

build.gradle 

अपने रूट प्रोजेक्ट फ़ोल्डर में, और उदाहरण के लिए प्लगइन का उपयोग करें:

apply plugin: 'idea'
//and standard one
apply plugin: 'java'

और कमांड लाइन से इस आग के साथ:

gradle cleanIdea 

और उसके बाद:

gradle idea

उसके बाद सब कुछ काम करना चाहिए


7
जब इस समाधान का प्रयास किया गया तो किसी को भी यह त्रुटि आई कि "मॉड्यूल 'xx' ग्रेडल द्वारा समर्थित नहीं है; यदि ऐसा है तो इसे कैसे हल किया गया
Marquis Blount

धन्यवाद यह मुझे पागल कर रहा था और मैं यह नहीं समझ सका कि इंटेलीजे को बिल्ड पर निर्भर होने के बाद परियोजनाओं की निर्भरता को कैसे ताज़ा किया जाए।
अमाला

gradle आईडिया (जो ideaProject, ideaModule, ideaWorkspace पर निर्भर करता है) ने मेरे लिए काम नहीं किया क्योंकि ideaModule विफल रहा। इसके बजाय, कार्य प्रवण विचारप्रणाली ने ठीक काम किया और परियोजना अब ग्रेडल-सक्षम है।
परंजा

ठीक है इस दृष्टिकोण के साथ एक समस्या है। आपको "निर्भरताएँ groovy.lang.closure" त्रुटि पर लागू नहीं की जा सकतीं। इसके बजाय इस समाधान की जाँच करें: stackoverflow.com/a/17168175/2517730
यार

1
यह कुछ पुराना है, क्योंकि विचार ग्रेड प्लगइन अभी भी फ़ाइल-आधारित विचार परियोजना का समर्थन करता है, जबकि फ़ोल्डर-आधारित परियोजना मानक और बहुत अधिक उपयोगी है
Xerus

74

किसी भी .imlफाइल को हटाने की आवश्यकता नहीं है । इसका पीछा करो:

  • प्रोजेक्ट बंद करें
  • File -> Open... और अपना नया बनाया हुआ चुनें build.gradle
  • IntelliJ आपसे पूछेगा कि क्या आप चाहते हैं:
    • Open Existing Project
    • Delete Existing Project and Import
  • दूसरा विकल्प चुनें और आप कर रहे हैं

मैं इस समस्या को कैसे ठीक कर सकता हूं, कि नई परियोजना को किसी अन्य फ़ोल्डर में होना चाहिए?
बाराकुडा 317

क्या यह आपके प्रोजेक्ट स्ट्रक्चर से JAR को जोड़ता है | निर्भरता के रूप में पुस्तकालय और प्रोजेक्ट संरचना में परिभाषित के रूप में एक ईएआर (प्लगइन का उपयोग करके) बनाएं कलाकृतियों?
NotiFY

@NOTiFY मुझे संदेह है कि यह करता है। यह खरोंच से परियोजना की जाँच करने के बराबर है।
मिखल कोर्डस

@ मिचल कोर्ड्स मैंने हाथ से सभी निर्भरताएं जोड़ीं, समय के आस-पास कहीं भी नहीं लिया, जिसकी मुझे उम्मीद थी और अब डब्ल्यूएआर, जार और ईएआर निर्माण को जोड़ दें। JetBrains पर इसके लिए एक सुविधा अनुरोध है youtrack.jetbrains.com/issue/IDEABKL-6990
NOTiFY

46

एक और तरीका, सरल।

आपका जोड़ें

build.gradle

अपने प्रोजेक्ट के मूल में फ़ाइल करें। प्रोजेक्ट बंद करें। मैन्युअल रूप से * .iml फ़ाइल निकालें। फिर "आयात परियोजना ..." चुनें, अपनी परियोजना निर्देशिका में नेविगेट करें, बिल्ड.ग्रेड फ़ाइल चुनें और ठीक पर क्लिक करें।


21

IntelliJ 2017.2.4 में मैंने अभी प्रोजेक्ट को बंद कर दिया और इसे फिर से खोल दिया और मुझे एक डायलॉग मिला जिसमें मुझसे पूछा गया कि क्या मैं बिल्ड -ग्रेड के साथ लिंक करना चाहता हूं। जिसने प्रोजेक्ट्स के लिए आयात संवाद खोला।

किसी भी फाइल को हटाने या build.gradle के लिए विचार प्लगइन जोड़ने की जरूरत नहीं है ।


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

16

भविष्य के संदर्भ के रूप में, यदि आपके पास पहले से ही एक Mavenपरियोजना है , तो आपको केवल gradle initअपनी परियोजना निर्देशिका में एक ऐसा काम करना होगा जो उत्पन्न build.gradleऔर अन्य निर्भरता उत्पन्न करेगा , फिर gradle buildउसी निर्देशिका में एक करें।


2
ब्याज की: नई ग्रेडल बिल्ड बनाना - नोट्स: gradle initविभिन्न विभिन्न प्रकार की परियोजनाएं उत्पन्न कर सकते हैं, और यहां तक ​​कि pom.xmlग्रेड के लिए सरल फ़ाइलों का अनुवाद करना भी जानते हैं ।
गाइ कोडर

7

मैं IntelliJ के संस्करण 12 का उपयोग कर रहा हूं।

मैंने एक पूरी तरह से नई परियोजना बनाकर एक समान समस्या को हल किया और "संस्करण नियंत्रण से बाहर की जाँच" दोनों परियोजनाओं को विलय करना बाद में काफी आसान था।


1
  1. build.gradleअपनी परियोजना की मूल निर्देशिका में जोड़ें ।

  2. फिर बस File->Invalidate Caches / Restart

यहाँ जावा परियोजनाओं के लिए एक बुनियादी build.gradle है:

plugins {
    id 'java'
}

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