इंटेलीज: कई परियोजनाओं पर काम करना


332

हम कई परियोजनाओं में निर्माण करते हैं (आइए उन्हें ए, बी, सी) नाम दें। प्रोजेक्ट A प्रोजेक्ट B का .jar का उपयोग करता है।

मैं सभी ए / बी / सी परियोजनाओं के कोड को संशोधित कर रहा हूं, (ए एमवीसी ऐप है, बी व्यावसायिक सेवाएँ हैं और सी कुछ साझा परत है)।

बात यह है कि ग्रहण / नेटबीन्स में मैं उन सभी को एक साथ देख सकता हूं और उन्हें संशोधित करना आरामदायक है। हालांकि IDEA में, मुझे IntelliJ IDEA के 3 इंस्टेंस (या n इंस्टेंस) खोलने हैं ।

क्या मैं कुछ भूल रहा हूँ? IntelliJ का उपयोग करते समय क्या बेहतर दृष्टिकोण है? यह मेरे लिए IntelliJ का सबसे बड़ा नकारात्मक पहलू है।


3
आज तक के जवाबों को देखने के बाद, मैं देख रहा हूं कि इंटेलीज ने परिभाषित किया है कि एक्लिप्स क्या "प्रोजेक्ट्स" को मॉड्यूल के रूप में और प्रोजेक्ट्स के रूप में "वर्कस्पेस" को परिभाषित करता है। विचार यह सुनिश्चित करने के लिए है कि एक ही परियोजना में मॉड्यूल काफी संबंधित हैं। इसलिए यदि प्रोजेक्ट A प्रोजेक्ट B पर निर्भर करता है, लेकिन C को प्रोजेक्ट करने के लिए दोनों पूरी तरह से असंबंधित हैं, तो एक ही IntelliJ प्रोजेक्ट में मॉड्यूल A के रूप में A और B को खोलना अच्छा होगा, जबकि एक दूसरे IntelliJ उदाहरण में C को अलग प्रोजेक्ट में खोलना। आप डिजाइन से सहमत या असहमत हो सकते हैं, लेकिन (यह मानकर कि मैंने विचार को सही ढंग से पकड़ लिया है) मैं इसके पीछे के विचार का सम्मान करता हूं।
जॉन चेसिर

जवाबों:


134

हाँ, आपका अंतर्ज्ञान अच्छा था। आपको इंटेलीज के तीन उदाहरणों का उपयोग नहीं करना चाहिए। आप एक परियोजना खोल सकते हैं और मॉड्यूल के रूप में आवेदन के अन्य 'भागों' को जोड़ सकते हैं। उन्हें प्रोजेक्ट ब्राउज़र के माध्यम से जोड़ें, डिफ़ॉल्ट हॉटकी alt + 1 है


1
मैं ऐसा ही कर रहा हूं: मुख्य परियोजना का आयात करें, फिर मैं अपनी दूसरी परियोजना को 'आयात मॉड्यूल' का उपयोग करके आयात करता हूं, लेकिन बाद में - मुझे मिला "ये मॉड्यूल मावेन संरचना से हटा दिए गए हैं: ... क्या आप चाहते हैं कि उन्हें हटा दिया जाए। प्रोजेक्ट से भी? " - फिर मैं 'नहीं' दबाता हूं। लेकिन यह संवाद कई बार दिखाई देता है। मैं क्या कर सकता हूँ?
नन्थुआन

99
नीचे बेहतर उत्तर
redDevil

3
@redDevil कौन सा?
पायोटर फाइंडसेन

4
@redDevil नहीं! यह उत्तर अधिक सामान्य है, यदि आपके पास गैर-मावेन परियोजनाएं हैं, तो यह उत्तर बेहतर है क्योंकि शीर्ष मतदान जवाब बस उन्हें कवर नहीं करता है। दो उत्तर अलग-अलग स्थितियों से निपटते हैं और समान रूप से प्रासंगिक हैं, कोई भी दूसरे से बेहतर नहीं है ।
luk2302

2
यह "मावेन ओनली" उत्तर से बेहतर है, लेकिन यह मदद नहीं करता है यदि आपके पास असंबद्ध परियोजनाएं हैं जो आप एक साथ दिखाई देते हैं (किसी अन्य परियोजना के कोड को संदर्भित करने के लिए पूर्व आसान पहुंच), या यदि आप एक पुस्तकालय का समर्थन करते हैं जो एक निर्भरता है। जिस परियोजना पर आप केंद्रित हैं। अत्यधिक निराशा होती है कि कैसे IJ ने ग्रहण / नेटबीन्स मॉडल का उपयोग यहां नहीं किया, यह मुख्य बात है कि मुझे IJ में जाने से रोक रहा है।
मनिअस

422

मुझे लगता है कि यह इंटेलीज के हालिया संस्करणों के साथ बेहतर हुआ है। मेरे वर्तमान संस्करण (12.0.2) में, आप एक ही "कार्यक्षेत्र" में किसी भी संख्या में अलग-अलग मावेन परियोजनाओं को जोड़ सकते हैं।

ऐसा करने का सबसे सरल तरीका यह है +कि "मावेन प्रोजेक्ट्स" विंडो में छोटे आइकन पर क्लिक करें (देखें> टूल विंडोज> मावेन प्रोजेक्ट्स) और फिर उस अतिरिक्त पोम फाइल को चुनें जिसे आप आयात करना चाहते हैं।


2
बस जोड़ने के लिए: एक बार मावेन परियोजना को जोड़ने के बाद यह परियोजना पैनल में लोड हो जाएगा यदि यह एक स्थानीय परियोजना है।
अराम कोचरन

9
यदि ये परियोजनाएं अलग-अलग गिट रिपॉजिटरी में स्थित हैं, तो आप सेटिंग्स (सेटिंग्स> संस्करण नियंत्रण> गिट) में 'कंट्रोल रिपॉजिटरी को सिंक्रोनाइज़ कर सकते हैं।' IntelliJ कई प्रोजेक्ट्स पर पुश, अपडेट और ब्रांच सिलेक्शन को सिंक करके रखेगा।
टिम वान लेर

13
उन लोगों के लिए जो इंटेलीजे के लिए नए हैं और नहीं जानते कि "मावेन प्रोजेक्ट्स" विंडो कहां है: शीर्ष दाएं कोने।
डस्टिन.स्कल्त्ज़

1
2017 के संस्करण के साथ यह अलग है, jetbrains.com/help/idea/2017.1/maven-projects-tool-window.html
vikramvi

3
इसलिए यदि आपको कई परियोजनाओं को खोलने की आवश्यकता है, लेकिन वे ग्रेड या चींटी परियोजनाएं हैं, तो आप अभी भी भाग्य से बाहर हैं। कोई धन्यवाद नहीं ... मुझे नेटबियंस और एक्लिप्स की अनुमति जैसे सभी 3 खुले होने में सक्षम होने की आवश्यकता है। एक उचित कार्यक्षेत्र का अभाव # 1 कारण है जो मैं अभी भी IJ का उपयोग नहीं करता हूं।
मानियस

216

कृपया इन 2 चरणों का पालन करें:

चरण 1 : "मावेन प्रोजेक्ट्स" खोलें

यहां छवि विवरण दर्ज करें

चरण 2 : उस परियोजना का चयन करें जिसे आप आयात करना चाहते हैं:

यहां छवि विवरण दर्ज करें


20
एक तस्वीर एक हजार शब्दों के बराबर होती है।
नीरज जैन

3
धन्यवाद, यह वास्तव में उपयोगी था
जे। एडम

3
यह जवाब मुझे बहुत मदद करता है, खासकर, स्क्रीनशॉट का उपयोग करने के लिए। धन्यवाद।
चकलादार असफाक आरिफ

1
यह वह उत्तर है जिसकी मुझे तलाश है। बहुत बहुत धन्यवाद :)
जरीन कुरियन

1
मुझे अपने उदाहरण में विकल्प दिखाई नहीं देता:2019.3 community
Marinos An

134

Prequisite

एक ही मूल निर्देशिका में सभी संबंधित परियोजनाओं के बाद ।

कदम

1) सबसे पहले आप एक नया खाली प्रोजेक्ट बनाएं

नई खाली परियोजना


2) फिर आप अपने सभी प्रोजेक्ट्स के रूट डायरेक्टरी का चयन करें।

यह एक खाली परियोजना बनाएगा, एक .idea निर्देशिका के साथ, जिसे हम अगले चरण में करने वाले मॉड्यूल संगठन को आसानी से याद रखेंगे

रूट निर्देशिका का चयन करें


3) फिर, अगली विंडो में, आप विभिन्न परियोजनाओं को मॉड्यूल के रूप में आयात करते हैं

मॉड्यूल के रूप में परियोजनाओं को आयात करें


4) अगली विंडो में, प्रत्येक प्रोजेक्ट को आयात करने के लिए, build.gradle , या pom.xml पर बस डबल क्लिक करें

परियोजना को एक नए मॉड्यूल के रूप में आयात किया जाएगा। बिल्ड फ़ाइल का चयन करें


5) हो गया, अब आपके पास अपनी सभी परियोजनाएं मॉड्यूल के रूप में हैं, उसी इंटेलीज परियोजना पर खोली गई हैं

परिणाम


16
यह इस प्रश्न का सटीक सही उत्तर है। पहले, प्रोजेक्ट बनाएं और खाली करें और फिर मौजूदा प्रोजेक्ट जोड़ें। धन्यवाद।
hrzafer

4
आपके पास समाधान है। लेकिन आपकी 'पहले से संबंधित सभी प्रोजेक्ट्स को एक ही रूट डाइरेक्टरी में रखना'। आवश्यक नहीं। मैंने मावेन परियोजनाओं के लिए प्रयास किया और यह Intelllij संस्करण 2017.3 के साथ ठीक काम करता है। मैं हालांकि intellij मानक मॉड्यूल के साथ कोशिश नहीं की है।
गौथियर पील

2
सटीक उपाय!
सत्येश

2
शीर्ष उत्तर। धन्यवाद :)
AnarchoEnte

2
इंटेलीज आइडिया 2018.3 और ग्रैडल के साथ मेरे लिए काम किया।
incises

53

IntelliJ 14.1.2 में, मैंने इसे निम्नलिखित की तरह किया:

चुनें File-> Project Structure-> Modules

का चयन करें +और Import Moduleअपनी परियोजना (या निर्देशिका जहां pom मौजूद है) की निर्देशिका का चयन करें और ठीक पर क्लिक करें।

स्क्रीन के अगले प्रवाह के माध्यम से पालन करें और क्लिक करने के बाद Finish, आपको अपने मौजूदा के साथ परियोजना को देखना चाहिए।

यहां छवि विवरण दर्ज करें


इस तरह मॉड्यूल नहीं जोड़ सकते। Cannot import anything from C:/Projects/
कभी अलियन

@ लीवरियन, क्या आपके पास C: / प्रोजेक्ट्स या कहीं और pom.xml है?
नव

नहीं, मेरे पास pom.xml फ़ाइल नहीं है। क्योंकि मैं Gradleबिल्ड का उपयोग करता हूं ।
कभी

2
यह स्वीकृत समाधान होना चाहिए। सभी प्रोजेक्ट मावेन का उपयोग नहीं करते हैं।
बब्बन वर्दयान

34

कोई भी समाधान मेरे लिए काम नहीं किया, क्योंकि मैं मावेन परियोजनाओं पर काम नहीं कर रहा हूं। एक सरल उपाय है। के लिए जाओ:

फ़ाइल-> प्रोजेक्ट संरचना-> मॉड्यूल।

यहां छवि विवरण दर्ज करें

मॉड्यूल जोड़ने के बजाय, बस तीसरे विकल्प (कॉपी) पर क्लिक करें। अपनी स्थानीय निर्देशिका ब्राउज़ करें और उस परियोजना का चयन करें जिसे आप जोड़ना चाहते हैं। मॉड्यूल नाम अपने आप हल हो जाएगा। बस।

अद्यतन: जब आप ऊपर वर्णित के रूप में फिर से कर रहे चरणों से बचने के लिए, कई उप-परियोजनाओं के साथ परियोजना को फिर से खोलना चाहते हैं, तो बस फ़ाइल में जाएं-> हाल ही में खोलें -> 'आपका बड़ा प्रोजेक्ट'।


1
हां ... ओह हां .... यही वह उपाय है जिसकी मुझे तलाश है। मावेन मॉड्यूल या प्रोजेक्ट के रूप में आयात करना उत्पन्न नहीं होता है .ideaऔर xxx.imlफाइलें। इससे अपाचे टाइल्स के साथ समस्या हो सकती है । मैं संस्करण के साथ उपयोग कर रहा हूँ 2018.1.5। बहुत बहुत धन्यवाद।
प्रलय

ये अद्भुत है! केवल नकारात्मक पक्ष IDE का उपयोग केवल एक संपादक के रूप में कर रहा है और अभी भी संकलन और चलाने के लिए सही फ़ोल्डर में नेविगेट करना है। किसी के पास कई फ़ोल्डर्स (कॉपी किए गए मॉड्यूल) के लिए इस समाधान का उपयोग करने का एक आसान तरीका है और फिर भी संपादक में संकलन और चला सकता है?
ग्रेग हिल्स्टन

11

@ उत्तर का विस्तार करने के लिए: अपनी निर्देशिका चुनने के बाद। import module from external modelअपने मॉडल को चुनें और चुनें (इस मामले में मावेन)।

मॉडल चुनें

फिर keep project filesअगले संवाद से विकल्प की जाँच करें । यह सभी फाइलों को मूल निर्देशिका में रखेगा।

विकल्प

आपकी अंतिम परियोजना संरचना कुछ इस तरह होगी।

संरचना

अब आप अपने मॉड्यूल को अन्य मॉड्यूल के लिए निर्भरता के रूप में जोड़ सकते हैं pom.xmlऔर यदि आप अपनी निर्भरता के स्रोत कोड को बदलते हैं, तो Intellij आपकी परियोजना को अपडेट करने का ध्यान रखता है ( mvnनिर्भरता के लिए मैन्युअल रूप से निर्माण चलाने की कोई आवश्यकता नहीं है )


8
  • नया खाली प्रोजेक्ट
  • फ़ाइल -> नया -> मौजूदा स्रोतों से मॉड्यूल

6

आप आर्मरी प्लगइन का उपयोग कर सकते हैं जो परियोजनाओं के बीच स्विचिंग को आरामदायक बनाता है। प्रोजेक्ट सूची के लिए डिफ़ॉल्ट शॉर्टकट Alt + A है

प्रोजेक्ट सूची विंडो का स्क्रीनशॉट

डिफ़ॉल्ट रूप से वर्तमान में खोले गए प्रोजेक्ट्स इस सूची में सबसे ऊपर ( बोल्ड स्टाइल के साथ ) प्रदर्शित होते हैं ।


6

खुली प्राथमिकता -> उपस्थिति और व्यवहार -> सिस्टम सेटिंग्स -> चयन (नई विंडो में खुली परियोजना) फिर आवेदन करें।यहां छवि विवरण दर्ज करें

तब आप कई प्रोजेक्ट खोल और संपादित कर सकते थे।


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

6

ग्रेडेल का उपयोग करने वाले भी इसका लाभ उठा सकते हैं:

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें

पर जाएं: 1. देखें -> टूल विंडोज -> ग्रैडल 2. +बटन पर क्लिक करें और अपनी build.gradleफाइल जोड़ें


क्या आप सामुदायिक संस्करण या अंतिम संस्करण का उपयोग कर रहे हैं? मैं इंटेलीज के लिए नया हूं और मुझे केवल सीई (2019.3.3) मिला है। यह उस मेनू में ग्रैडल नहीं है।
माइक कृंतक

4

विंडोज़ पर "F4" दबाएं जो "प्रोजेक्ट स्ट्रक्चर" को खोलेगा और फिर आयात किए जाने वाले नए प्रोजेक्ट का चयन करने के लिए "+" आइकन या "Alt + इन्सर्ट" पर क्लिक करें; फिर ओके बटन पर क्लिक करें ...


कुंजी के लिए धन्यवाद। यदि आप @ThisIsFlorianK के उत्तर के साथ कुछ भी जोड़ना भूल गए तो यह मददगार था!
सत्येश

4

ऐड मावेन प्रोजेक्ट्स के लिए बटन का उपयोग करें और प्रोजेक्ट के फ़ोल्डर के अंदर जाएं। फिर, pom.xmlफ़ाइल का चयन करें और उन्हें IntelliJ में जोड़ें।

यहां छवि विवरण दर्ज करें


1

नए प्रोजेक्ट को जोड़ने और बनाने के लिए मावेन का उपयोग नहीं करने वाले लोगों के लिए (मैं इंटेलीज 14.1.3 का उपयोग कर रहा हूं):

  1. प्रोजेक्ट दृश्य में शीर्ष स्तर के फ़ोल्डर पर राइट क्लिक करें, नया चुनें -> मॉड्यूल
  2. मॉड्यूल को उसी नाम का नाम दें, जिसे जोड़ा जाना है
  3. शीर्ष मेनू से फ़ाइल-> नया-> प्रोजेक्ट चुनें। नया मॉड्यूल, समान फ़ोल्डर स्थानों के साथ ही नाम दर्ज करें।
  4. प्रोजेक्ट खोलें, और प्रोजेक्ट संरचना बनाने के लिए intellij की प्रतीक्षा करें।
  5. इस नई परियोजना को बंद करें, और मूल परियोजना को खोलें चरण 2 में मॉड्यूल को जोड़ा गया था

आपके बिल्डर के आधार पर, इसे निर्माण प्रक्रिया में जोड़ने के लिए अतिरिक्त चरणों की आवश्यकता होगी।

SBT के लिए, और शीर्ष स्तर की परियोजना में मैंने नई परियोजना को एकत्रित करने के लिए Build.scala फ़ाइल को संशोधित किया, और प्रोजेक्ट को SBT प्रोजेक्ट विंडो में जोड़ा। SBT मल्टीप्रोजेक्ट बिल्ड पर अधिक जानकारी: http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Multi-Project.html


IntelliJ ने एक प्रोजेक्ट में sbt मॉड्यूल को जोड़ने के लिए समर्थन जोड़ा और यह वास्तव में अच्छा काम कर रहा था, लेकिन 2017 के संस्करणों के बाद से यह टूट गया लगता है। आप अभी भी कई sbt मॉड्यूल जोड़ सकते हैं लेकिन जब आप रीफ़्रेश करते हैं, तो आप सभी को खो देते हैं, लेकिन एक।
नादेर घनबारी

1

Intellij IDEA 2019.2 के लिए, F4 + मॉड्यूल पर क्लिक करें, अपने HDD से किसी भी प्रोजेक्ट को जोड़ने के लिए + पर क्लिक करें, इस मेनू के ऊपर यो आपके साथ आईडीई को संपादित कर सकते हैं जिससे आप प्रोजेक्ट बना सकते हैं और अधिक विकल्प, बहुत आसान


0

आप आयात मॉड्यूल विकल्प का उपयोग कर सकते हैं जो इसे उसी नेविगेटर में ग्रहण की तरह खोल देगा।


यह कहता है कि परियोजना में
.ipr

0

मैं मावेन के लिए नया हूं और समझ में नहीं आया कि मैं विक्टर नॉर्डलिंग के जवाब के माध्यम से स्थानीय मावेन परियोजना के साथ कैसे काम कर सकता हूं और अभी भी pom.xml फ़ाइल में एक उचित निर्भरता है। इसका उत्तर सरल है: intellij सबसे पहले आपके स्थानीय रूप से जोड़े गए मॉड्यूल को देखता है और अगर यह एक नहीं मिलता है तो यह परियोजना को दूरस्थ रूप से प्राप्त करता है। जब आप मावेन मॉड्यूल को जोड़ते या हटाते हैं, तो आप अपने प्रोजेक्ट ब्राउज़र के अंतर्गत "बाहरी लाइब्रेरीज़" को देख सकते हैं।

आशा है कि यह किसी को भी मदद करता है।


0

2019.2 के रिलीज के रूप में, यह फ़ाइल-> अटैच प्रोजेक्ट जितना आसान है।

🎉🎉🎉🎉🎉

फाइल-> प्रोजेक्ट अटैच करें

देखें: https://youtrack.jetbrains.com/issue/WEB-7968


क्या आप सामुदायिक संस्करण या अंतिम संस्करण का उपयोग कर रहे हैं? मैं इंटेलीज के लिए नया हूं और मुझे केवल सीई (2019.3.3) मिला है। यह उस मेनू में अटैच परियोजना नहीं है।
माइक कृंतक

-1

संपूर्ण परियोजनाओं को एक मॉड्यूल में स्थानांतरित करने की आवश्यकता नहीं है। मॉड्यूल के लिए उपयोग मामला प्रोजेक्ट कंटेनर की तुलना में थोड़ा महीन होता है।

एक ही विंडो में कई प्रोजेक्ट खोलने के लिए:

फ़ाइल -> ओपन प्रोजेक्ट

इस विंडो में खुले का चयन करें।

चेक बॉक्स जो कहता है कि वर्तमान परियोजना में जोड़ें।


1
काम नहीं कर रहा। यह वर्तमान विंडो को उसी विंडो में बदल देता है।
कभी

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