2015-12-05 21 views
6

का उपयोग करते हुए इंटेलिज में संपत्तियों के लिए लाइवरेलोड स्प्रिंग बूट तकनीक के बिना वसंत का उपयोग करते समय, मैं टॉमकैट मेवेन प्लगइन के साथ एप्लिकेशन शुरू कर सकता हूं और परिवर्तनों के प्रभाव के लिए सर्वर को पुनरारंभ किए बिना अपने एचटीएमएल, सीएसएस और जेएस अपडेट कर सकता हूं ब्राउज़र मेंस्प्रिंग बूट

अब, जब वसंत बूट के साथ ऐसा करने में, मैं IntelliJ हर मैं अपने स्थिर संपत्तियों में कुछ बदलने में एक Make काम करने के लिए नहीं तो मैं सिर्फ अभ्यस्त ब्राउज़र में परिवर्तन देखने होगा,। मेरा स्प्रिंग बूट एप्लिकेशन भी devtools निर्भरता का उपयोग कर रहा है, और जब ब्राउज़र देख रहा है तो ब्राउज़र लाइव रीलोड सॉकेट से जुड़ा हुआ है।

यह कॉन्फ़िगरेशन अभी भी मेरे स्थिर फ़ाइलों में किए गए परिवर्तनों को नहीं दिखाता है। यह काम करने के लिए मुझे क्या करने की ज़रूरत है?

उत्तर

1

ऐसा लगता है कि समस्या मेरी स्थिर संपत्ति के प्लेसमेंट में थी। मुझे उन्हें main पैकेज के तहत webapp फ़ोल्डर में रखना पड़ा। मैं Spring.io से एक गाइड का पालन कर रहा था इससे पहले कि स्थिर संपत्तियों को resources पैकेज में डाल दिया जाए।

अब मैंने resources पैकेज का उपयोग करना बंद कर दिया है, जैसा कि मैं इसे चाहता हूं सबकुछ काम करता है। यदि आप war प्लगइन के बिना jar निर्माण

+0

के साथ भी उपयोग करता हूं, मुझे खुशी है कि आपको समाधान मिला है। मुझे यह अजीब लगता है कि आपके पास 'संसाधन' फ़ोल्डर में स्थिर संसाधन था, और यह अभी भी बदलाव नहीं उठाया। मुझे 99% यकीन है कि मैंने पढ़ा है कि यह उस दस्तावेज़ीकरण में होगा ... ओह ठीक है। – Mike

+0

मुझे यह वही समस्या थी। क्या आप इसे अपनी एचटीएमएल फाइलों के लिए भी काम कर पाएंगे? यह मेरे जेएस/सीएसएस के लिए तय किया गया जब मैंने उन्हें src/main/webapp/[css | js] में स्थानांतरित कर दिया, लेकिन जब मैंने अपने टेम्पलेट्स को src/main/webapp/templates में ले जाया, तो मेरे नियंत्रकों को टेम्पलेट नहीं मिल सका। कोई मदद? – user2923779

+2

वसंत-बूट के साथ अपना आवेदन चलाते समय मुझे स्थिर संसाधनों को 'संसाधन' में रखना पड़ा। अगर मैंने उन्हें 'वेबएप' निर्देशिका में रखा है तो उन्हें जेएआर फाइल में शामिल नहीं किया जाएगा जिसे मैं बना रहा था। वसंत-बूट के साथ अब एक WAR फ़ाइल बनाने की कोई आवश्यकता नहीं है, इसलिए ऐसा लगता है कि 'संसाधन' स्थिर सामग्री के लिए पसंदीदा स्थान है। LiveReload केवल तब काम करता है जब मैं IntelliJ15 में प्रोजेक्ट (सीएमडी + एफ 9) बना देता हूं। – Miguel

0

यदि आप वर्तमान Spring Boot 1.3.0.RELEASE documentation का पालन करते हैं, तो ऐसा लगता है कि यह आपके द्वारा की जा रही समस्या को हल करने का बिल्कुल वर्णन करता है। यह इंटेलिजे और मेवेन का भी एक साथ उपयोग करने का वर्णन करता है।

तो शायद इसे जांचें और देखें कि क्या आप पहले दस्तावेज़ वाले पथ का पालन कर रहे हैं?

आपको यह सुनिश्चित करना चाहिए कि आप दस्तावेज़ों के साथ पालन करने से पहले सही मेवेन निर्भरता का उपयोग कर रहे हैं (जो मेरे द्वारा लिंक किए गए दस्तावेज़ पृष्ठ में सूचीबद्ध हैं)।

+0

कि गाइड hotswapping प्रौद्योगिकी का उपयोग कर सुझाव देता है। लेकिन मुझे जावा फाइलों को हॉटस्पॉप करने में दिलचस्पी नहीं है क्योंकि मैं स्थैतिक संपत्तियों को पुनः लोड करने के बारे में हूं। इसके अलावा गाइड ने उन उपयोगकर्ताओं के बारे में कुछ भी नहीं बताया जो किसी भी टेम्पलेटिंग का उपयोग नहीं करते हैं। मेरे पास नियमित है। एचटीएमएल फाइलें। उल्लेखनीय है कि मेरे पास अब मेवेन में परिभाषित स्प्रिंगलोडेड प्लगइन है और ऐसा कोई फर्क नहीं पड़ता। – Kaspar

+0

हां, पर्याप्त मेला। मैंने थोड़ा और देखा। क्या आपने [स्वचालित पुनरारंभ पर अनुभाग 20.2] पढ़ा है (https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html), अधिक विशेष रूप से शीर्षक वाले शीर्षक बॉक्स * ट्रिगरिंग एक बदलाव*। मैं एक्लिप्स के साथ काम करता हूं, इसलिए इंटेलिजे पर यह अनुभाग आपको अधिक समझ सकता है। – Mike

+0

[स्थिर संसाधनों का बहिष्कार (धारा 20.2.1)] पर एक और अनुभाग भी है (https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html# का उपयोग कर-बूट-DevTools-पुनः आरंभ-बहिष्कृत करें)। यह भी सहायक हो सकता है। और यदि सब कुछ विफल हो जाता है, तो मुझे लगता है कि उस अनुभाग के नीचे [अतिरिक्त पथ देखना] [https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html# -boot-devtools-restart-अतिरिक्त-पथ का उपयोग करके) आपकी समस्या को ठीक कर सकता है। – Mike

6

webapp dir में मेरे अनुभव स्थिर संपत्ति से उपलब्ध नहीं हैं। तो मैं इस डीआईआर का उपयोग करने से बचूंगा। स्प्रिंग बूट के साथ अपनी स्थिर संपत्तियों के लिए resources/static फ़ोल्डर का उपयोग करना बेहतर है। लेकिन आप चाहते हैं कि उन्हें ग्रैडल के bootRun लक्ष्य या मेवेन के spring-boot:run को निष्पादित करते समय पुनः लोड किया जाए।

प्राप्त करने के लिए इस Gradle के लिए निम्न सेटिंग का उपयोग करें:

bootRun { 
    addResources = true 
} 

और Maven के लिए:

<plugin> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-maven-plugin</artifactId> 
    <configuration> 
     <fork>true</fork> 
     <addResources>true</addResources> 
    </configuration> 
</plugin> 
+0

मेरे पास उन सेटिंग्स हैं जिन्हें आप ऊपर वर्णित करते हैं लेकिन अभी भी CTRL-F9 पर हैं और ब्राउज़र को एचटीएमएल लोड में लाने के लिए ताज़ा करें। CTRL-F9 से बचने के लिए मुझे और कुछ करना पड़ सकता है? –

+0

@AlGrant दबाकर CTRL + S पर्याप्त होना चाहिए – Derp

+0

मैंने यहां तकनीक का पालन किया: http://stackoverflow.com/questions/43402551/intellijspringbootthymeleafgradle-autoreload-html-resources नोट करें कि मुझे रजिस्ट्री सेटिंग के बाद इंटेलिज को फिर से शुरू करना था - अब यह स्वत: जादुई रूप से पुनः लोड करता है। –