मैं कर रहा हूँ अपग्रेड करने की प्रक्रिया में एक छोटे स्प्रिंग बूट आवेदन से जावा 8 जावा के लिए 11. इस परियोजना का उपयोग करता है पैकेज javax.smartcardio
. मैं निर्माण कर रहा हूँ के साथ यह maven.
के pom.xml
मूल रूप से निम्नलिखित शामिल हैं निर्भरताएँ/plugins:
- वसंत-बूट-स्टार्टर-माता-पिता (2.5.6)
- वसंत-बूट-स्टार्टर-का परीक्षण
- वसंत-बूट-स्टार्टर-वेब
- वसंत-बूट-autoconfigure
- कंकड़-वसंत-बूट-2 स्टार्टर
- वसंत-बूट-स्टार्टर-सुरक्षा
- वसंत-बूट-मावेन-प्लगइन
- maven-संसाधन-प्लगइन
- maven-विधानसभा-प्लगइन
- exec-मावेन-प्लगइन
उन्नयन के बाद मेरे सभी निर्भरता और का उपयोग कर OpenJDK11 परियोजना संकलित और ठीक चलता है (mvn clean package
). विशेष रूप से भागों का उपयोग कर वर्गों से javax.smartcardio
यह भी ठीक काम करते हैं ।
इंटेलीजे हालांकि, पर प्रकाश डाला है मेरे सभी आयात का पैकेज javax.smartcardio.
लाल रंग में. मँडरा जब यह खत्म हो, यह मुझसे कहता है Intellij - Package 'javax.smartcardio' is declared in module 'java.smartcardio', which is not in the module graph
. इंटेलीजे पता चलता है में जोड़ने के लिए इस मॉड्यूल के माध्यम से कंपाइलर विकल्प के साथ --add-modules java.smartcardio
. जब ऐसा है तो, इंटेलीजे बंद हो जाता है पर प्रकाश डाला आयात करता है ।
मेरा सवाल है, अब क्यों करता है इंटेलीजे उन पर प्रकाश डाला आयात करता है, भले ही सब कुछ है, संकलन और चल रहा है बस ठीक है फिर भी? मैं क्या कर रहा हूँ याद आ रही है? यह महत्वपूर्ण है कि जोड़ने के लिए मॉड्यूल जब संकलन? शायद मावेन कुछ भी करता है, उस संबंध में मेरे लिए पहले से ही है? यदि ऐसा है तो, हिस्सा है जो मैं के लिए तलाश में?
मैं के बारे में पढ़ा है का उपयोग कर module-info.java
है , लेकिन करने के लिए आया था निष्कर्ष है कि यह उपयोग करने के लिए अपनी समस्या को हल नहीं किया जाएगा सबसे अच्छा समाधान है । यह भी देखें किसी भी योजना के लिए जावा 9 पहेली (मॉड्यूल) के वसंत परियोजनाओं?