2017-03-10 12 views
5

मैं एक परियोजना Vert.XGradle निर्माण उपकरण का उपयोग कर ढांचे का उपयोग कर विकसित कर रहा हूँ पर काम नहीं कर। समस्या मेरे पास है IntelliJ में breakpoints बस किसी भी तरह से मैं कोशिश की है में काम नहीं करता है। ,IntelliJ विचार डिबगर Gradle Vert.X परियोजना

run { 
    args = [ 
      'run', mainVerticleName, 
      "-conf", confPath, 
      "--redeploy=$project.ext.watchForChange", 
      "--launcher-class=$mainClassName", 
      "--on-redeploy=$project.ext.doOnChange" 
    ] 
} 

तो तैनाती Gradle उपयोग किया जाता है किसी भी मुद्दे के बिना चलाता है, IntelliJ डिबगर जुड़ा हुआ है, लेकिन breakpoints काम नहीं कर रहे:

यहाँ जो मैं Gradle में उपयोग Vert.X के लिए एक रन विन्यास है।

तरीके मैं इसे काम करने के लिए कोशिश की है:

1) Gradle रन विन्यास। Intellij Run Configuration using Gradle

एक रिमोट डीबगिंग उपकरण का उपयोग करने की कोशिश की, निम्नलिखित वीएम विकल्पों के साथ आवेदन करना शुरू कर दिया:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000

लेकिन यह काम नहीं किया यहाँ Intellij IDEA के लिए एक रन विन्यास है।

2) आवेदन विन्यास: IntelliJ Run Configuration using Application

इस मामले में मैं बस परियोजना शुरू नहीं कर सकते के रूप में मैं स्टार्टअप पर निम्न संदेश मिलता है:

Error: Could not find or load main class io.vertx.core.Launcher

Vert.X Core पुस्तकालय में है क्लासपाथ और कॉन्फ़िगरेशन सही प्रतीत होता है, इसलिए समस्या नहीं मिल सकती है।

परियोजना के स्रोत कोड सार्वजनिक है और GitHub पर पाया जा सकता:

vertx-gradle-architecture-starter

Vert.X संस्करण - 3.4.0। ग्रैडल संस्करण - 3.4.1। इंटेलिजे आईडीईए संस्करण - 2016.3.5। ओएस - मैकोज़ सिएरा 10.12.3। breakpoints काम -

दिलचस्प तथ्य यह है कि जब मैं परीक्षण से Vert.X को तैनात है। कोई भी विचार क्यों breakpoints मामलों में काम नहीं करता है मैं ऊपर वर्णित है?

+0

कम से कम आपका दूसरा विकल्प निश्चित रूप से काम करना चाहिए! Vert.x का कौन सा संस्करण आप उपयोग कर रहे हैं? शायद यह एक पुराना संस्करण है जिसमें 'io.vertx.core.Launcher' नहीं है? – MirceaG

+0

यह 'io.vertx.core.Launcher' है जैसा कि आप स्क्रीनशॉट में देख सकते हैं। मुझे संदेश मिलता है 'त्रुटि: इस कॉन्फ़िगरेशन के स्टार्टअप पर मुख्य श्रेणी io.vertx.core.Launcher' को नहीं मिला या लोड नहीं किया जा सका, इसलिए ईवेंट डीबगर की जांच नहीं कर सकता है। और मेरे पास निर्भरता में 'वर्क्स-कोर' है। –

+0

क्षमा करें, मैंने आपको यह नहीं देखा है कि आप 3.4.0 का उपयोग कर रहे हैं। मुझे आपकी गिटहब परियोजना मिली और स्क्रीनशॉट से कॉन्फ़िगरेशन के साथ स्थानीय रूप से कोशिश की। यह काम करता हैं! Intellij में परियोजना को साफ/पुनर्निर्माण करने का प्रयास करें। – MirceaG

उत्तर

5

यहाँ दोनों समस्याओं का समाधान कर रहे हैं। इस पर मदद के लिए @CrazyCoder के लिए धन्यवाद।

1) run आदेश अलग वी एम में चलाया जाता है। इसलिए, यह काम करने के लिए, मैं स्क्रिप्ट के --java-opts तर्क जोड़ दिया है:

run { 
    args = [ 
      'run', mainVerticleName, 
      "-conf", confPath, 
      "--redeploy=$project.ext.watchForChange", 
      "--launcher-class=$mainClassName", 
      "--on-redeploy=$project.ext.doOnChange", 
      // used for attaching remote debugger 
      "--java-opts", "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000" 
    ] 
} 

इस बंदरगाह 8000 पर Remote debug विन्यास संलग्न करने के लिए अनुमति देता है।

2) डिफ़ॉल्ट रूप से, Intellij IDEA प्रति स्रोत सेट अलग मॉड्यूल बनाता है, इसलिए मेरे पास api_main और api_test मॉड्यूल के लिए स्रोत सेट थे। इस सुविधा को बंद करने के बाद - एप्लिकेशन डीबग रन काम करने के लिए शुरू किया।

इसे ग्रैडल सेटिंग्स में बंद किया जा सकता है। Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle: प्रति स्रोत सेट अलग मॉड्यूल बनाएं अनचेक करें।

enter image description here

यह एक IntelliJ IDEA मुद्दा है - reference

+0

"प्रति स्रोत रूट अलग मॉड्यूल बनाएं" और जब src/main (उदाहरण के लिए src/integrationTest) से अधिक होने पर आपको यह गलत लगेगा - IntelliJ उस मॉड्यूल (क्लासपाथ और इतने पर) के लिए कॉन्फ़िगरेशन नहीं जानता है – kboom

+0

यह काम कोटलिन के साथ भी? – Ville

0

मेरे पास एक ही समस्या थी और मेरे लिए काम करने के बाद। IntelliJ में पुन: नियोजन, लॉन्चर और ऑन-रेडियोजित विकल्प आवश्यक नहीं हैं। यदि हम आवेदन के बाद उन डीबग कार्यों को हटा देते हैं।

run { 
    args = [ 
     'run', mainVerticleName, 
     "-conf", confPath 
    ] 
} 
संबंधित मुद्दे