2012-10-10 7 views
11

डीबग करते समय इंटेलिजे गलत लाइनों के माध्यम से कदम उठाता है मैंने इंटेलिज के साथ liquibase प्रोजेक्ट के लिए मैवेन प्लगइन को रिमोट करने का प्रयास किया। समस्या यह है कि आईडीईए गलत स्रोत कोड लाइन को हाइलाइट कर रहा है और मैं क्यों नहीं समझ सकता। स्रोत कोड जिसे मैं डीबग करने का प्रयास करता हूं वह छूटा हुआ है। मैं मैन्युअल रूप से इंटेलिज में उपयोग किए जाने वाले स्रोतों से अपने स्थानीय मैवेन भंडार में प्लगइन का निर्माण और स्थापित करता हूं। मेरा इंटेलिज संस्करण 11.1.3 है और मेवेन संस्करण 3.0.4 उबंटू 12.04 पर चल रहा है।रिमोट जावा एप्लिकेशन

मैवेन प्लगइन डीबग करने के लिए मैंने mvnDebug कॉमांड का उपयोग किया। अगर किसी के पास गलत क्या है, तो मुझे कुछ सलाह दें, कृपया मुझे कुछ सलाह दें। अगर आपको कुछ और जानकारी चाहिए तो कृपया पूछें। मुझे रिमोट डीबगिंग के लिए भी उपयोग नहीं किया जाता है (वास्तव में यह दूसरी बार मैंने किया है) इसलिए मैं आपको कुछ जानकारी फिसल सकता हूं।

उत्तर

13

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

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

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

ध्यान दें कि जब आप तृतीय-पक्ष पुस्तकालयों को डिबग कर रहे हैं, तो आप अक्सर "स्रोत" जार डाउनलोड कर सकते हैं (IntelliJ2-IDEA get Maven-2 to download source and documentation देखें)।

+0

धन्यवाद लड़का! मेरे मामले में, प्रोजेक्ट बनाने के लिए प्रयुक्त प्लगइन संस्करण उन स्रोतों के साथ समान नहीं था जिन्हें मैं डीबग करने का प्रयास कर रहा था। यह प्रोजेक्ट बनने पर प्लगइन संस्करण का उपयोग करने के लिए यह एक डमी चीज थी। मैंने सोचा कि यह मेरे मैन्युअल रूप से निर्माण संस्करण का उपयोग करेगा। –

1

रिमोट डीबगिंग करने के बजाय आप सीधे इंटेलिजे से प्लगइन चला सकते हैं।

  1. क्या pom.xml पर इंगित करके इंटेलिजे में लोड की गई तरल पदार्थ प्लगइन प्रोजेक्ट है।
  2. चुनें Edit Configurations...
  3. प्रेस Add New Configuration करने के लिए + बटन।
  4. Maven का चयन करें। enter image description here
  5. उस प्रोजेक्ट में Working directory दर्ज करें जिसे आप प्लगइन चलाने के लिए चाहते हैं।
  6. Command line दर्ज करें। आप जो करना चाहते हैं उसके आधार पर process-sources, compile या liquibase:status हो सकता है।
  7. प्रेस ठीक
  8. Liquibase मोजो में एक ब्रेकपाइंट सेट करें।

अब आप शिफ्ट दबाकर + F9 द्वारा इस विन्यास शुरू कर सकते हैं।

मेवेन शुरू हो जाएगा और अंत में आप देखेंगे कि आपकी प्लगइन ब्रेकपॉइंट पर प्रतीक्षा कर रही है!


करें कि आप सही संस्करण के साथ लक्ष्य pom.xml में प्लगइन को परिभाषित किया है और वह आपके द्वारा शुरू करने से पहले प्लगइन का निर्माण करें। आप Before Launch फलक में Make सक्षम करके सुनिश्चित कर सकते हैं।

enter image description here

+0

यह बहुत अच्छी तरह से काम करता है। सरल और तेज़, हालांकि रिमोट-डिबगिंग काफी तेज़ है जब सब कुछ आपकी स्थानीय मशीन पर है। –

+0

मुझे लगता है कि यह स्थिति पर निर्भर करता है। यदि आप एक प्लगइन विकसित कर रहे हैं तो इस दृष्टिकोण के मुकाबले बेहतर समय है। लेकिन आपके मामले में जब आप पहले से विकसित प्लगइन का उपयोग कर रहे हैं तो दूसरा समाधान बेहतर हो सकता है। – maba

3

आप इस पोस्ट भर में ठोकर खाई है, और यह सुनिश्चित करें कि स्रोत और जार एक ही कोड कर रहे हैं, तो यह आपकी समस्या हो सकती है है।

http://youtrack.jetbrains.com/issue/IDEA-8021

+0

धन्यवाद! यह एक बहुत ही जानकारीपूर्ण पोस्ट था! –