ग्रहण: क्या मुझे प्रत्येक परियोजना के लिए कार्यक्षेत्र बनाना चाहिए?


80

मैं बस सोच रहा हूं कि क्या मेरी सभी ग्रहण परियोजनाओं को एक कार्यक्षेत्र में रखना सबसे अच्छा है, या प्रति 1 परियोजना 1 कार्यक्षेत्र करना है। मैं सिर्फ एक एकल डेवलपर हूं, अधिक या कम शौक के लिए, लेकिन मैं जो ऐप बनाता हूं, उनमें वास्तव में उत्पादन संस्करण होते हैं जो अक्सर क्रोन नौकरियों पर चल रहे हैं, इसलिए यह लगभग एक शौकिया उत्पादन वातावरण की तरह है।

अभी तक मैंने जिन समस्याओं पर ध्यान दिया है, वे JARs के निर्यात के लिए हैं, मेरे पास अन्य परियोजनाओं से स्रोत फ़ाइलों को शामिल करने की क्षमता है जो ऐसा लगता है कि यह गड़बड़ हो सकती है।


मैंने पाया है कि यह मेरे लिए प्रत्येक स्रोत कोड शाखा के लिए एक कार्यक्षेत्र का उपयोग करने के लिए अच्छी तरह से काम करता है। यदि आपको किसी शाखा में कई जगह होने की आवश्यकता है तो अलग-अलग कार्यक्षेत्रों में भी होना उपयोगी हो सकता है।
थोर्बोजर्न रेवन एंडरसन

जवाबों:


29

मैं अलग-अलग कार्यस्थान रखता था, लेकिन उनके बीच सेटिंग्स को बनाए रखने में कठिनाई से थक गया। अब मैं जो भी करता हूं वह विभिन्न परियोजनाओं के लिए कार्यशील सेट बनाता है और जो मैं काम करना चाहता हूं, उसे छोड़कर सभी चीजों को फ़िल्टर करने के लिए वर्तमान विंडो वर्किंग सेट को बदल दें। अब तक इसने मेरे लिए ठीक काम किया है।

चूंकि प्रत्येक प्रोजेक्ट में कई कार्यशील सेट हो सकते हैं, और विंडो वर्किंग सेट किसी भी वर्किंग सेट का संयोजन हो सकता है, यह केवल यह देखना काफी आसान है कि आप किसी भी समय इस तरह से क्या चाहते हैं।


यदि यह मैं होता, तो मैंने इसे सही उत्तर के रूप में चुना होता। बिना किसी चीज़ को तोड़े या यहाँ और वहाँ वर्कस्पेस बनाए बिना विंडो वर्किंग सेट का इस्तेमाल करके चीजों को छानना इतना आसान है। यह आपको केवल संबंधित परियोजनाओं को देखने में मदद करता है और केवल उसी चीज़ पर ध्यान केंद्रित करता है जो आपको चाहिए।
स्टीलमनकी

28

मैं उत्पादों के चारों ओर एक्लिप्स वर्कस्पेस बनाता हूं, क्योंकि मेरे लिए, एक प्रोडक्ट में उनके भीतर कई प्रोजेक्ट हो सकते हैं, उदाहरण के लिए जैसे कि किसी प्रोजेक्ट में एक जार में संकलित कोर लाइब्रेरी, यह अन्य प्रोजेक्ट्स द्वारा उपयोग किया जाता है।

उत्पादन परिवेश के संदर्भ में, आप चाहते हैं कि उत्पाद विभिन्न निर्देशिका संरचनाओं में चल रहे हों, इस तरह से बहुत अधिक क्लीनर। और ग्रहण में कार्यक्षेत्र कार्यक्षेत्र नाम के साथ एक निर्देशिका बनाता है। इसलिए, उनके भीतर एक या अधिक परियोजनाओं के बजाय उत्पाद / ऐप के आधार पर कार्यस्थान बनाएं।


1
क्या आप संपूर्ण कार्यक्षेत्र को स्रोत नियंत्रण में एक मूल आरंभिक आयात / चेक इन के रूप में जोड़ते हैं?
लाश

4
आमतौर पर हम वर्कस्पेस या एक्लिप्स प्रोजेक्ट फाइल्स को सोर्स कंट्रोल में नहीं जोड़ते हैं लेकिन केवल प्रोजेक्ट कोड और एसेट्स जोड़ते हैं। जब तक स्रोत कोड संकलित होता है और रात के निर्माण प्रणाली में चलता है, तब तक एक डेवलपर अपने कार्यक्षेत्र को अनुकूलित कर सकता है क्योंकि वे फिट होते हैं।
omermuhammed

1
जब आप ग्रहण का उन्नयन करते हैं तो क्या होगा? क्या आप एक नया कार्यक्षेत्र बनाते हैं और परियोजना को आयात करते हैं? (शायद यह एक नया प्रश्न होना चाहिए ...) मैं पूछता हूं, क्योंकि मैं इंडिगो, हेलियो, जूनो, अब केप्लर से अपग्रेड करने के बाद समस्याओं में भाग गया हूं, और इसलिए प्रत्येक के लिए एक नया कार्यक्षेत्र बनाएं। बहुत असुविधाजनक है।
dfdumaresq

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

6

यदि परियोजनाएँ परस्पर जुड़ी हुई हैं (अर्थात एक दूसरे पर निर्भरताएँ हैं) तो यह अक्सर उन्हें एक ही कार्यक्षेत्र में रखने के लिए समझ में आता है। साथ ही, यदि आप संबंधित समस्या को हल करने के लिए कई परियोजनाओं पर काम कर रहे हैं, तो यह लागू होता है।

आप कार्यस्थल को अनावश्यक रूप से बदलने में बहुत समय बर्बाद कर देंगे अन्यथा, खासकर जब आईडीई तुरंत आपको दिखाएगा कि एक परियोजना में बदलाव दूसरे पर क्या प्रभाव डालते हैं।


6

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


3

मैं परियोजनाओं के विभिन्न "समूहों" के लिए अलग-अलग कार्यक्षेत्रों का उपयोग करूंगा। उदाहरण के लिए आप अपने मुख्य ऐप प्रोजेक्ट और यूनिट टेस्टिंग प्रोजेक्ट को एक ही कार्यक्षेत्र में एक साथ जोड़ना चाहते हैं।


दिलचस्प .. मैं वास्तव में एक ही परियोजना में इकाई परीक्षण स्रोत फ़ोल्डर डाल दिया।
लाश

@ ज़ीलिन: उदाहरण के लिए, मेरे पास एक ही कार्यक्षेत्र में एक एंड्रॉइड प्रोजेक्ट और एंड्रॉइड टेस्ट प्रोजेक्ट है। टेस्ट प्रोजेक्ट को वास्तविक ऐप का संदर्भ चाहिए।
ब्रायन डेनी

3

शायद मैं बदकिस्मत हूं, लेकिन स्टार्टअप पर अक्सर (एक बार एक महीने में, कहते हैं) स्टार्टअप पर मर जाता है, आमतौर पर "शुरुआती जावा टूलिंग" चरण में। एक नया कार्यक्षेत्र बनाने के लिए अनुशंसित समाधान लगता है। यदि आपके पास अपने सभी प्रोजेक्ट एक ही कार्यक्षेत्र में हैं, तो यह एक दर्द हो सकता है। मुझे लगता है कि छोटे कार्यक्षेत्रों का मतलब यह हो सकता है कि दुर्घटना कम होने की संभावना है।


अच्छी बात है, मैं इस तरह से सब कुछ भ्रष्ट कर देता हूं। यह लगभग कोड की एक जीवित श्वास पारिस्थितिकी तंत्र की तरह है।
लाश

2
आप संस्करण नियंत्रण का उपयोग कर रहे हैं, क्या आप नहीं हैं?
मैरिटन

कुछ के लिए ठीक हो सकता है। ऑस्ट्रेलिया में ब्रॉडबैंड 'विकसित' दुनिया से एक दशक पीछे है ...
जॉन

6
आपको संस्करण नियंत्रण के लिए इंटरनेट एक्सेस की आवश्यकता नहीं है, खासकर यदि आप कुछ वितरित सिस्टम जैसे कि गिट या मर्क्यूरियल का उपयोग करते हैं।
बैड सेक्टर

3

जैसा कि प्राथमिकताएँ कार्यक्षेत्र-विशिष्ट हैं, मैं एक विशाल कार्यक्षेत्र खुला रखता हूं - मैं कार्यक्षेत्रों (जैसे रिपॉजिटरी ...) के बीच कुछ सेटिंग्स सिंक करने के लिए बहुत आलसी हूं।

दूसरी ओर किसी एकल कार्यक्षेत्र में बहुत अधिक परियोजनाएँ खुली होने से ग्रहण धीमा हो सकता है - इसलिए मुझे कम से कम उन परियोजनाओं को बंद करना होगा जिनके साथ मैं काम नहीं कर रहा हूँ। मैं एक्लिप्स में बहुत सारे सापेक्ष अल्पकालिक परियोजनाओं (एक महीने में) का प्रबंधन करता हूं, जो एक ही कार्यक्षेत्र (और ज्यादातर मामलों में समान रिपॉजिटरी) में रहते हैं, इसलिए यह सेटअप मुझे एक बड़ा लचीलापन देता है।

यदि आपके पास कई, परस्पर संबंधित परियोजनाएं हैं, तो उन्हें एक ही कार्यक्षेत्र में रखें। यदि आप परियोजनाओं के समूह की पहचान कर सकते हैं, जो हमेशा एक साथ उपयोग किए जाते हैं, लेकिन समूह स्वतंत्र रूप से उपयोग किए जाते हैं, तो ऐसे प्रोजेक्ट सेट को अलग-अलग कार्यक्षेत्रों में डाल दें। उस मामले में जो तार्किक संरचना होनी चाहिए।


1
यही मेरा दृष्टिकोण भी है। मैं अपने सभी जावा प्रोजेक्ट्स के लिए सिर्फ एक कार्यक्षेत्र रखता हूं। उनमें से एक जोड़ी अन्य परियोजनाओं पर निर्भर करती है, इसलिए यह आसान है, और मेरे पास हर एक के लिए काम करने वाले सेट हैं। हालांकि, मैं उन लोगों को बंद कर देता हूं जिनके साथ मैं सक्रिय रूप से काम नहीं कर रहा हूं - इससे चीजें अधिक प्रबंधनीय होती हैं।
Elduff

3

हमारे पास ऐसी स्थिति है जहां हमारे पास कई परियोजनाएं हैं, कुछ शाखाओं पर, जो स्पष्ट रूप से एक ही कार्यक्षेत्र में रखने के लिए बहुत अव्यवहारिक है - और काम करने वाले सेट एक मजाक हैं। दुर्भाग्य से। इसके अलावा ऐसी परियोजनाएँ जिन्हें आप उपयोग नहीं करते हैं, खुले तौर पर पूरा होने वाले मेन्यू आदि से चुना जा सकता है। त्रुटि प्रवण।

हमारे लिए वास्तव में निफ्टी की सुविधा तब थी, जब टीम -> प्रोजेक्ट सेट जोड़े गए थे (ग्रहण 3.3 में मेरा मानना ​​है) क्योंकि इसने हमें पूरी परियोजना को बनाने वाली कई परियोजनाओं का वर्णन करते हुए एक फाइल रखने की अनुमति दी थी, जिसे टीम के साथ ग्रहण में आयात किया जा सकता है। -> आयात। किसी दिए गए प्रोजेक्ट की आवश्यकता है? इसे सीवीएस से बाहर की जाँच करें, इसके अंदर projectSet.psf फ़ाइल की स्थिति जानें और THAT आयात करें।

यह हमारे लिए अच्छा काम साबित हुआ है।


ध्यान दें, हमने तब से मावेन के लिए माइग्रेट किया है जो कई, इंटरव्यूड प्रोजेक्ट्स को मैनेज करना आसान बनाता है।
Thorbjørn रेवन एंडरसन

3

मेरे पास प्रत्येक प्रकार की परियोजना में एक कार्यक्षेत्र है। Ex: सादा जावा, वेब अनुप्रयोग, पायथन आदि।

इसका कारण मैं उन पुस्तकालयों को साझा कर सकता हूं जो कॉपी किए बिना या उनकी ओर इशारा किए बिना समान हैं। इसके अलावा, मैं अव्यवस्था से बचने के लिए ग्रहण से असंबंधित परियोजनाओं को बंद कर देता हूं।


2

मेरे पास अपनी सभी परियोजनाएं एकल कार्यक्षेत्र में हैं और उन्हें प्रबंधित करने के लिए काम करने वाले सेट का उपयोग करें।


1

आप पर निर्भर करता है! मैंने हमेशा विभिन्न परियोजनाओं के संबंधित संस्करणों को रखते हुए पाया है, जो किसी दिए गए कार्यक्षेत्र में एक क्लीनर रिलीज के समान रिलीज से संबंधित हैं। इस तरह, जब भी मुझे किसी अलग रिलीज़ में किसी चीज़ को संदर्भित करने की आवश्यकता होती है, तो मैं कार्यस्थानों के बीच स्विच कर सकता हूं और वर्तमान रिलीज़ कार्यस्थान पर वापस स्विच कर सकता हूं। यह मुझे चेक-आउट या रिपॉजिटरी ब्राउज़ करने की परेशानी से भी बचाता है।


1

आप यह भी ध्यान रखना चाह सकते हैं कि आप ग्रहण के कई उदाहरण खोल सकते हैं जब तक कि वे विभिन्न कार्यक्षेत्रों को देख रहे हों। यकीन नहीं है कि अगर यह आपके लिए महत्वपूर्ण है, लेकिन मुझे समय-समय पर ऐसा करना पसंद है।


OSX में किसी भी ऐप बंडल को ओपन कमांड के साथ खोला जाता है (जो यह खोजता है कि यह कैसे करता है) केवल एक रनिंग इंस्टेंस की अनुमति देगा। हालाँकि कमांड लाइन Eclipse.app/Contents/MacOS/eclipse से चलाएं, तो आपके पास कई प्रतियां चल सकती हैं
mmmmmm

1

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


1

निर्भर करता है कि आप कितने प्रोजेक्ट्स पर काम करते हैं? यदि आप कई प्रोजेक्ट्स पर काम करते हैं, तो मैं एक ही कार्यक्षेत्र का उपयोग करूंगा, क्योंकि यदि आप कई का उपयोग करते हैं तो आप आसानी से भूल सकते हैं कि क्या है और कहाँ कम से कम कहने के लिए निराशा हो सकती है। हालाँकि, मैं हमेशा विभिन्न प्रोग्रामिंग भाषाओं के लिए अलग-अलग कार्यक्षेत्र का उपयोग करता हूं, जो कम भ्रमित होने का रास्ता है, जब आप जावा कार्यक्षेत्र में होते हैं तो आपको लगता है कि JAA: D

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