intellij idea - Intellij आईडीई के साथ वसंत बूट hotswap




intellij-idea spring-boot (4)

मेरे पास इंटेलिज आईडीई के साथ एक वसंत बूट एप्लिकेशन ठीक चल रहा है। यानी मैंने एप्लिकेशन क्लास शुरू की जिसमें मुख्य विधि है जो SpringApplication.run को प्रस्तुत करती है। सब कुछ hotswap को छोड़कर महान काम करता है। जब मैं स्रोत बदलता हूं, तो मुझे एप्लिकेशन को फिर से शुरू करने के लिए मजबूर होना पड़ता है। यहां तक ​​कि अगर मैं डीबग मोड में एप्लिकेशन शुरू करता हूं, तो मुझे हॉटस्पेप काम नहीं दिख रहा है। मैं देख सकता था कि इंटेलिज की डीबग सेटिंग्स में हॉटस्पेप सक्षम है।

मेरा अवलोकन दिखाता है कि जब मैं springboot अनुप्रयोग चलाता हूं, तो कक्षा का उपयोग किया जाता है मेरा

/projects/MyProject/classes/production/....

जब मैं कोड बदलता हूं तो classes/production तहत फ़ाइलें अपडेट नहीं हो रही हैं। Intellij IDE फ़ाइलों को संकलित करता है लेकिन कक्षाओं / उत्पादन निर्देशिका को अद्यतन नहीं करता है। मैं वसंत-बूट के लिए IntelliJ IDE के साथ काम कर रहे हॉटस्पैप कैसे प्राप्त करूं?


एक समाधान जो devTools का उपयोग करता है:

1 - अपनी परियोजना में devtools जोड़ना

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
</dependency>

2- स्वचालित निर्माण सक्षम करना

सेटिंग्स खोलें -> बिल्ड-निष्पादन-परिनियोजन -> कंपाइलर और सक्षम करें:

Build Project Automatically.

3- compiler.automake.allow.when.app.running के मान को अद्यतन करें

ctrl+shift+A दबाएं और registry । रजिस्ट्री में, सक्षम करें:

compiler.automake.allow.when.app.running

आशा करता हूँ की ये काम करेगा !

संदर्भ:


मूल कारण पता चला। स्प्रिंग-बूट के साथ इसका कोई लेना-देना नहीं है। मेरी groovy स्रोत फ़ाइलों को बदलने पर, फ़ाइलों को स्वत: संकलित नहीं किया गया था।

बदली गई फ़ाइलों को पुन: संकलित करने और उन्हें स्वैप करने के लिए:

  • विंडोज़ पर Ctrl+Shift+F9
  • मैक पर Cmd+Shift+F9

मैंने भी वही समस्या देखी। मैं इंटेलिज 13.1.1 पर हूं। और इसके लिए बदली कक्षा को hotswap करने के लिए। मुझे एप को डीबग मोड में चलाने के लिए है, फिर कक्षा को बदलने के बाद, मैन्युअल रूप से "रन-> रीलोडेड क्लासेस को फिर से लोड करें" का चयन करें।

http://www.jetbrains.com/idea/webhelp/reloading-classes.html में संकेत के रूप में मेरे पास डिबगर सेट हॉटस्पैप भी है लेकिन काम नहीं लगता है।

वैसे भी, मैन्युअल रूप से मैन्युअल "चलाएं-> बदले गए वर्गों को फिर से लोड करें" मेनू काम करता है।


spring-loaded प्रयोग करें। यह बीन रीलोडिंग के साथ ठीक काम करता है। यह जेरेबेल के लिए मुफ्त विकल्प है।

एक और तरीका DCEVM या hotswapagent का उपयोग hotswapagent





hotswap