उत्पन्न मेटाडेटा को अद्यतन करने के लिए स्प्रिंग बूट कॉन्फ़िगरेशन एनोटेशन प्रोसेसर को फिर से चलाएँ


99

मैंने जोड़ लिया है:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

मेरे pom.xmlप्रति intellijअनुरोध / चेतावनी के लिए।

अब मैं "मेटाडेटा को अपडेट करने के लिए स्प्रिंग बूट कॉन्फ़िगरेशन एनोटेशन प्रोसेसर फिर से चला रहा हूं" देख रहा हूं।

मैं कैसे करूं जो intellijमुझे करने के लिए कह रहा है?

इस लिंक, B.2 एनोटेशन प्रोसेसर का उपयोग करके अपना मेटा-डेटा तैयार करना , निर्देश नहीं है।

जवाबों:


60

निम्नलिखित निर्देशों ने मेरे लिए काम किया: http://www.mdoninger.de/2015/05/16/completion-for-custom-properties-in-spring-boot.html

एनोटेशन प्रोसेसर को फिर से चलाने के बारे में यह संदेश थोड़ा भ्रमित करने वाला है क्योंकि ऐसा प्रतीत होता है कि यह हर समय रहता है भले ही कुछ भी नहीं बदला हो।

कुंजी आवश्यक निर्भरता को जोड़ने के बाद या किसी भी संपत्ति में परिवर्तन करने के बाद परियोजना के पुनर्निर्माण के लिए लगती है। ऐसा करने के बाद और YAML फ़ाइल पर वापस जाने के बाद, मेरे सभी गुण अब कॉन्फ़िगरेशन कक्षाओं से जुड़े थे।

आपको संबंधित जावा वर्ग के लिंक को पहचानने के लिए .yaml फ़ाइल दृश्य प्राप्त करने के लिए मावेन फलक में 'रिमपोर्ट ऑल मावेन प्रोजेक्ट्स' बटन पर क्लिक करने की आवश्यकता हो सकती है।


तो संदेश से छुटकारा पाने का कोई तरीका नहीं है?
ऑरेंजडॉग

1
@OrangeDog नहीं है कि मैं पा सकता हूं। मैंने इसे अनदेखा करना सीख लिया है, लेकिन आप हमेशा JetBrains के साथ एक सुविधा का अनुरोध कर सकते हैं। आप कल्पना करेंगे कि वे इस बारे में थोड़ा होशियार हो सकते हैं और केवल इसे प्रदर्शित कर सकते हैं यदि वे जानते हैं कि क्लास की फाइल या कॉन्फ़िगरेशन फ़ाइल वास्तव में बदल गई है
पैट्रिक हेरेरा

1
त्रुटि संदेश अभी भी परियोजना के पुनर्निर्माण के बाद वहाँ रहता है।
केंट बुल

3
"कुंजी परियोजना के पुनर्निर्माण में लग रही है" मुझे मदद की। संदेश अभी भी यहाँ है, लेकिन application.propertiesफ़ाइल में मेरे कस्टम गुणों के कम से कम स्वत: पूर्ण होने पर काम करना शुरू हो गया।
रुस्लान

1
मैं IDEA 2018.3 का उपयोग करता हूं और पाठ संदेश के बाद एक लिंक "छुपाएं अधिसूचना" है। ऐसा लगता है जैसे JetBrains ने जानकारी को बंद कर दिया है :-)
मार्कस के।

18

मेरे किसी भी जवाब ने काम नहीं किया। यदि आप केवल संदेश को अक्षम करना चाहते हैं, तो Intellij प्राथमिकताएं -> संपादक -> सामान्य -> ​​उपस्थिति पर जाएं, "स्प्रिंग बूट मेटाडेटा पैनल दिखाएं" को अनचेक करें।

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


4
चेक बॉक्स IDEA 2017.2 के तहत वरीयता के साथ है -> भाषाएँ और रूपरेखा -> स्प्रिंग -> स्प्रिंग बूट
oleh

15

आप निम्नलिखित के माध्यम से IntelliJ में एनोटेशन प्रोसेसर को सक्षम कर सकते हैं:

  1. फ़ाइल पर क्लिक करें
  2. सेटिंग्स पर क्लिक करें
  3. ऊपरी-बाएँ हाथ के कोने में थोड़ा खोज बॉक्स में, "एनोटेशन प्रोसेसर" की खोज करें
  4. "एनोटेशन प्रसंस्करण सक्षम करें" जांचें
  5. ओके पर क्लिक करें

10

मेरी भी यही समस्या थी। समस्या यह है कि स्प्रिंग बूट एनोटेशन प्रोसेसर spring-configuration-metadata.jsonआपके /target/classes/META-INFफ़ोल्डर के अंदर फ़ाइल उत्पन्न करता है ।

यदि आप मेरी तरह IntelliJ में इस फ़ोल्डर को नजरअंदाज कर दिया है (क्योंकि क्या बिल्ली, जो वर्गों फ़ाइलों के बारे में परवाह है?), फ़ाइल आपके IDE द्वारा अनुक्रमित नहीं किया जाएगा। इसलिए, कोई पूरा नहीं, और कष्टप्रद संदेश।

केवल targetउन अनदेखी फ़ाइलों / फ़ोल्डरों की सूची से हटा दें , जिनमें स्थित है Settings > Editor > File Types > Ignore files and folders


2
मैं targetअपनी उपेक्षित फाइलों में नहीं देखता । .gitignoreहालांकि यह मेरे में है।
एरिक फ्रांसिस

target/मेरे मामले में बाहर रखा गया है और चीजें ठीक काम कर रही हैं।
अमृत ​​मोस्तफा

3
इसका उपयोग किया जाएगा या नहीं, लक्ष्य को बाहर रखा गया है या नहीं (मैं इस सुविधा के लिए जिम्मेदार डेवलपर हूं)। कृपया बग रिपोर्ट दर्ज करें यदि आप इस गलत व्यवहार को पुन: पेश कर सकते हैं।
यन सेब्रोन

1
तो इंटेलीज का कौन सा संस्करण ठीक से व्यवहार करता है?
मार्क्स

2
@ YannCébron एक ही है, यहाँ ग्रेडेल के साथ। फ़ाइल ./build/classes/java/main/META-INF/spring-configuration-metadata.json में बन जाती है, लेकिन IntelliJ इसे ध्यान में नहीं रखता है। अगर मैं मैन्युअल रूप से sson / main / resource / META-INF में json फाइल को स्थानांतरित करता हूं तो यह काम करता है (कॉन्फ़िगरेशन अब पीले नहीं हुए हैं)
कोस्टि मुरारु

9

इनमें से किसी भी विकल्प ने मेरे लिए काम नहीं किया। मैंने पाया है कि एनोटेशन प्रोसेसर्स का ऑटो डिटेक्शन काफी परतदार होता है। मैंने pom.xml फ़ाइल में एक प्लगइन सेक्शन तैयार किया है जो प्रोजेक्ट के लिए उपयोग किए जाने वाले एनोटेशन प्रोसेसर को स्पष्ट रूप से सेट करता है। इसका लाभ यह है कि आपको किसी भी आईडीई सेटिंग्स पर भरोसा करने की आवश्यकता नहीं है।

<plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <compilerVersion>1.8</compilerVersion>
                <source>1.8</source>
                <target>1.8</target>
                <annotationProcessors>
                    <annotationProcessor>org.springframework.boot.configurationprocessor.ConfigurationMetadataAnnotationProcessor</annotationProcessor>
                    <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
                    <annotationProcessor>org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor</annotationProcessor>
                </annotationProcessors>
            </configuration>
        </plugin>

6
यह एक मेरे लिए काम किया। मैंने annotationProccessorPathsव्यक्तिगत कक्षाओं को परिभाषित करने के बजाय उपयोग किया । <annotationProcessorPaths><path><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><version>${parent.version}</version></path>...
फ्रात कृष्ण

1
  1. स्प्रिंग-बूट-कॉन्फ़िगरेशन-प्रोसेसर पर निर्भरता शामिल करें
  2. IDEA के Maven फलक में "Reimport All Maven Projects" पर क्लिक करें
  3. परियोजना का पुनर्निर्माण

0

मेरे लिए, अन्य उत्तरों से काम नहीं चला। मुझे इंटेलीज पर खोलने Filesऔर करने के लिए जाना था Invalidate caches and restart। उसके बाद, सब कुछ फिर से ठीक काम किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.