2011-10-06 15 views
37

क्या बिल्ड के प्रयोजन के स्वचालित रूप से है Eclipse (Project->Build Automatically) में विकल्प? मेरा हमेशा जांच किया जाएगा। लेकिन जब कभी मेरे पास कुछ जावा कोड परिवर्तन होते हैं तो मुझे अभी भी एक पूर्ण निर्माण करना है। मुझे बताया गया था कि हमेशा जांच की जानी चाहिए। मुझे ऐसा करने में कोई फायदा नहीं दिख रहा है। कृपया कुछ शरीर समझाओ।ग्रहण में "स्वचालित रूप से बनाएँ" विकल्प का उद्देश्य

उत्तर

27

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

+0

क्या आप बचत करके निर्माण कर रहे हैं? यह एएनटी बिल्ड – pushya

+3

@pushya से अलग कैसे बना सकता है: आम तौर पर एक चींटी बिल्ड स्वचालित रूप से परीक्षण चला सकता है, या तैनाती के लिए तैयार एक अलग क्षेत्र में निर्माण कर सकता है, जार फाइलें बना सकता है, शायद प्रत्येक निर्माण से पहले साफ करें। आंतरिक निर्माण आमतौर पर आउटपुट निर्देशिका में वर्ग फ़ाइलों को बना देगा, और संसाधनों की प्रतिलिपि बनाएँ। विशेष रूप से, यह एक त्वरित बदलाव के लिए बहुत अच्छा है जब इकाई परीक्षण आदि - लेकिन यदि आप एक पुनरुत्पादित, से-स्क्रैच, सभी परीक्षण-परीक्षण आदि बनाना चाहते हैं, तो आप चींटी की तरह कुछ उपयोग करना चाहेंगे। –

+0

@ जोनस्केट - स्वचालित रूप से निर्माण करने के लिए सेटिंग में नकारात्मक प्रदर्शन प्रभाव पड़ता है जब आप एम्बेड किए गए वेब एप्लिकेशन सर्वर चला रहे हैं जो कोड परिवर्तनों की निगरानी करते हैं। उस परिदृश्य में अक्सर कोड परिवर्तन बार-बार सर्वर पुनरारंभ और अंतिम आईडीई क्रैश का कारण बनता है। – Perception

0

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

+1

अंतिम वाक्य सत्य नहीं है, डब्ल्यूटीपी परियोजनाओं के लिए यह आपके आवेदन को सर्वर पर फिर से तैनात करेगा। –

+0

केवल तभी यदि आपने इसे स्वचालित रूप से तैनात करने के लिए सेट किया है। – nitind

20

ग्रहण एक अच्छा जवाब on their website है:

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

यदि ऑटो-बिल्ड बहुत लंबा समय ले रहा है और चल रहे विकास के साथ हस्तक्षेप कर रहा है, तो इसे बंद कर दिया जा सकता है। एक बार मैन्युअल बिल्ड मोड में, जब उपयोगकर्ता बनता है और क्या बनाया जाता है, तो उपयोगकर्ता पूर्ण नियंत्रण में होता है। प्रोजेक्ट> सभी बिल्ड करें (Ctrl + B) किसी भी समय स्वचालित रूप से ऑटो-बिल्डिंग स्वचालित रूप से करने के लिए ट्रिगर करने के लिए बुलाया जा सकता है। यह आपको एक निर्माण (लागू ग्रहण याद है इतना है कि यह आवश्यकता से जब आप एक निर्माण के लिए मांग रहे हैं अधिक काम करने की जरूरत नहीं है जो फ़ाइलों को बदल दिया है पहले परिवर्तन के अपेक्षाकृत बड़े समूह का निर्माण करने की अनुमति देता है।

ध्यान दें कि जब वे कहते हैं कि "ऑटो निर्माण मोड" वे मतलब अगर आप जाँच कर ली है "स्वचालित रूप से बनाएँ", जब वे कहते हैं कि "मैनुअल निर्माण मोड" वे मतलब है कि आप "स्वचालित रूप से बनाएँ" जाँच की जरूरत नहीं है।

+0

"हर बार जब आप वर्कस्पेस में फ़ाइलों को बदलते हैं (उदाहरण के लिए एक संपादक को सहेजते हैं) पृष्ठभूमि में बिल्ड स्वचालित रूप से होते हैं।" - सरल और सरल – luigi7up

1

नोट
के लिए सी/सी ++ उपयोगकर्ताओं को यह बताया गया है कि (fromhelp.eclipse.org):

डिफ़ॉल्ट रूप से, ग्रहण वर्कबेंच स्वचालित रूप से प्रोजेक्ट बनाने के लिए कॉन्फ़िगर किया गया है। हालांकि, सी/सी ++ विकास के लिए आपको इस विकल्प को अक्षम करना चाहिए, अन्यथा आपकी पूरी परियोजना को फिर से बनाया जाएगा, उदाहरण के लिए, आप अपनी मेकफ़ाइल या स्रोत फ़ाइलों में बदलाव सहेजते हैं। प्रोजेक्ट पर क्लिक करें> स्वचालित रूप से बनाएं और सुनिश्चित करें कि बिल्ड स्वचालित रूप से मेनू आइटम के बगल में कोई चेकमार्क नहीं है।

1

परियोजना - अक्षम Autobuild विकल्प हमेशा autobuild मतलब यह नहीं है बंद है। उदाहरण के लिए "मेकगूड" परीक्षण स्वचालन प्लगइन ऑटोबूल्ड ट्रिगर करेगा जब प्राथमिकताएं - रन/डीबग - लॉन्चिंग - (सामान्य विकल्प) लॉन्च से पहले बनाएं चालू है। तो मैन्युअल निर्माण की आवश्यकता होने पर इसे बंद कर दें।

1

एक और अंतर यह है:
जेएसपी पर काम करते समय अधिकांश समय यह "स्वचालित रूप से बिल्ड" की जांच करते समय मुझे सहायता करता है। यह स्वचालित रूप से जेएसपी में बदलाव उठाता है।
लेकिन यदि आप अपने जावा कक्षाओं/एक्सएमएल में परिवर्तन करते हैं तो आपको मैन्युअल बिल्ड की आवश्यकता होती है। चूंकि मैं राल सर्वर का उपयोग कर रहा हूं जो कमांड प्रॉम्प्ट के माध्यम से एक्लिप्स के बाहर चलाया जाता है, इसलिए मैं विकल्प जांचना पसंद करता हूं।
जब मेरे पास ग्रहण में मेरा सर्वर सेटअप है, तो मैं इसे बंद कर देता हूं और सर्वर पर प्रकाशित का उपयोग करता हूं।

इस तरह मैं उपयोग करता हूं और उत्तर मेरे अनुभव पर आधारित है।

1

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

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