java - IntelliJ स्प्रिंग बूट अनुप्रयोगों को धीरे-धीरे बनाने के साथ समाप्त नहीं करता है




spring intellij-idea gradle spring-boot (3)

मैं लिनक्स पर इंटेलिजे 13.1 का उपयोग कर रहा हूं और उदाहरण के बाद एक मूल आरईएसटी एप्लीकेशन बनाने का प्रयास करता हूं http://spring.io/guides/gs/spring-boot/

जब मैं IntelliJ के भीतर से लक्षित बूटरुन निष्पादित करता हूं तो इंटरग्रेटेड टॉमकैट सर्वर प्रारंभ होता है और सब कुछ ठीक काम करता है।

10:09:35: Executing external task 'bootRun'...
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:findMainClass
:bootRun

लेकिन निष्पादन को रोकना धीरे-धीरे कार्य को प्रभावित नहीं करता है:

10:11:40: External task execution finished 'bootRun'.

मैं अभी भी कॉन्फ़िगर पोर्ट पर टॉमकैट उदाहरण का उपयोग कर सकता हूं। केवल इंटेलिजे बंद करने से प्रक्रिया को नष्ट कर दिया जाएगा।

मैंने इस विषय पर खोज की लेकिन मुझे कोई उचित उत्तर नहीं मिला। मुझे आश्चर्य है कि यह एक है

  • ग्रेडल समस्या (ग्रेडल रैपर संस्करण 1.11 का उपयोग कर)
  • लिनक्स समस्या (उबंटू 12.04)
  • IntelliJ समस्या (आईडीईए 13.1.2)
  • स्प्रिंग बूट समस्या (1.0.0.RELEASE से 1.1.0.M2 तक विभिन्न संस्करणों का प्रयास किया)

Answers

मुझे पता है कि यह उत्तर पहले से ही उत्तर दिया गया था, लेकिन Google में खोज करते समय यह पहला विषय है, मैंने सोचा कि एक विकल्प साझा करने में मैंने सोचा और मुझे पढ़ने वाले अन्य विषयों में नहीं मिला।

इस terminate साथ मेरी मुख्य समस्या यह थी कि हमेशा मैंने अपनी कक्षाओं में कुछ बदल दिया, मुझे सर्वर को पुनरारंभ करने की आवश्यकता थी, और यह असफल हो गया था इसलिए मुझे कभी-कभी सर्वर को stop/start करने की आवश्यकता होती थी।

इससे बचने के लिए, मैं spring-boot-devtools उपयोग करता spring-boot-devtools । मूल रूप से:

स्प्रिंग-बूट-डेवटोल्स का उपयोग करने वाले अनुप्रयोग क्लासपाथ में फ़ाइलों को बदलने पर स्वचालित रूप से पुन: प्रारंभ हो जाएंगे।

एकमात्र पकड़ यह है कि इंटेलिज पर यह केवल प्रोजेक्ट makes है अगर Build > Make Project क्लिक Build > Make Project , तो या तो इसे स्वचालित रूप से बनाने के लिए सेट करें या Build > Make Project पर क्लिक करना याद रखें।

उपयोग करने के लिए, बस अपने build.gradle / pom.xml निर्भरता जोड़ें: compile('org.springframework.boot:spring-boot-devtools')

मैंने इसे विकास में वास्तव में उपयोगी पाया।


मुझे पूरा यकीन है कि यह इंटेलिजे मुद्दा है क्योंकि:

जब आप IntelliJ के Gradle एकीकरण से bootRun चलाते हैं और फिर स्टॉप दबाते हैं, तो आपके द्वारा उल्लेखित एप्लिकेशन को जारी रखना जारी रहता है।

हालांकि, यदि आप कमांड लाइन का उपयोग करते हैं और gradle bootRun चलाते हैं और फिर gradle bootRun + C का उपयोग करते हैं, तो एप्लिकेशन बस ठीक हो जाता है।

ध्यान दें कि मेरा सेटअप विंडोज 7 है, इंटेलिजे 13.1.3, ग्रैडल 1.12 और स्प्रिंग बूट 1.1.0.एम 2।

यदि आपकी आवश्यकता को आसानी से आपके एप्लिकेशन को डीबग करने में सक्षम होना है, तो आपको केवल जावा (या ग्रोवी) कक्षा चलाने की ज़रूरत है, जिसमें main विधि है, क्योंकि यह वसंत बूट अनुप्रयोगों को चलाने का सबसे आसान तरीका है! उस के लिए वसंत बूट करने के लिए Kudos !!!

बेशक आप सभी परीक्षणों को चलाने या पैकेज किए गए एप्लिकेशन को बनाने जैसे कार्यों के लिए ग्रैडल का उपयोग करना जारी रख सकते हैं।


gradle build -x test --parallel

अगर आपकी मशीन में कई कोर हैं। हालांकि, समानांतर साफ उपयोग करने की अनुशंसा नहीं की जाती है।





java spring intellij-idea gradle spring-boot