मेरे पास एक grails एप्लिकेशन है जो मैं grails इंटरैक्टिव मोड के माध्यम से चल रहा है। इस एप्लिकेशन में सेवाएं, टैगलिब्स, जीएसपीएस आदि शामिल हैं लेकिन सबसे महत्वपूर्ण बात यह है कि इसमें src/groovy फ़ोल्डर में groovy फ़ाइलें शामिल हैं।Grails इंटरैक्टिव मोड में स्टेटिक स्ट्रिंग्स
इन ग्रूवी फ़ाइलों में से एक AppConstants.groovy कहा जाता है और शामिल हैं यानी
public static final String VARIABLE1 = "VARIABLE VALUE"
स्थैतिक चर की एक भीड़ जब गैर इंटरैक्टिव मोड मैं कोई समस्या नहीं मिल में इस चल रहा है, अपडेट इस चर करने के लिए किया जाता है चलने वाले ऐप में प्रतिबिंबित होने पर प्रतिबिंबित होता है। इंटरैक्टिव मोड में हालांकि, VARIABLE1
वैरिएबल में किए गए कोई भी परिवर्तन ऐप में प्रतिबिंबित नहीं होते हैं, भले ही आप exit
और run-app
पर कॉल करें। परिवर्तनों को प्रतिबिंबित करने के लिए इंटरैक्टिव मोड को बाहर निकाला जाना चाहिए और पुनरारंभ करना चाहिए।
पहले मैंने सोचा कि यह एक कैश समस्या हो सकती है और मेरे स्थिर अंतिम चर को कैश किया जा रहा था और चूंकि JVM को पुनरारंभ नहीं किया जा रहा था क्योंकि यह कैश कभी अपडेट नहीं किया जा रहा था। हालांकि मैंने देखा है कि एक नए चर में जोड़ना, जो पहले कभी भी एप्लिकेशन में मौजूद नहीं था, मेरे शेष एप्लिकेशन के लिए उपलब्ध नहीं है जब तक कि इंटरैक्टिव मोड रीस्टार्ट नहीं हो जाता।
कोई विचार क्या है इसके पीछे कारण क्या है? कक्षा को संकलित किया जा रहा है क्योंकि मैं इसे इंटरैक्टिव कंसोल में देख सकता हूं ताकि कोई भी एप्लिकेशन में किसी भी बदलाव को प्रतिबिंबित करने की अपेक्षा करे, जरूरी नहीं कि यह चल रहा हो, लेकिन कम से कम exit
के साथ run-app
के साथ।
अतिरिक्त जानकारी: Grails संस्करण 2.1.0
हो सकता है कि इंटरैक्टिव मोड यह देखने में असफल रहा कि फ़ाइल बदल गई है? यदि आप बस रन-एप करते हैं, तो "1 स्रोत फ़ाइल संकलित" संदेश दिखाई देता है? –
हां जैसा कि मैंने उल्लेख किया है, यह फ़ाइल को संकलित करता है और मैं इसे इंटरैक्टिव मोड में देख सकता हूं, फिर भी एक बार फिर से कंपाइल, स्टॉप और रन-ऐप के बाद भी, इसे साफ करने के बाद भी स्थिर स्थिर स्ट्रिंग के संपादन या जोड़ को पहचान नहीं पाएगा इंटरैक्टिव मोड के पूर्ण पुनरारंभ होने के बाद तक। –