2013-11-25 6 views
37

मेरे पास pom.xml में प्रदान किए गए स्कोप के रूप में servlet-api संस्करण 2.5 है। यहां निर्भरता का हिस्सा है: मेरी परियोजना का वृक्ष उत्पादन। "संस्करण 2.3 से प्रबंधित किया गया है; संकलन से प्रबंधित स्कोप" मतलब है?मैं एक मेवेन निर्भरता पेड़ कैसे पढ़ूं

[INFO] +- commons-logging:commons-logging:jar:1.1:compile 
[INFO] | \- javax.servlet:servlet-api:jar:2.5:provided (version managed from 2.3; scope managed from compile) 

क्या इसका मतलब है कि मेरे क्लासपाथ पर संस्करण 2.3 पर कुछ संक्रमणीय निर्भरता है? मेरी WAR फ़ाइल में सर्वलेट-एपी जार नहीं है, लेकिन मैं Spring 2.5.4 का पुराना संस्करण उपयोग करता हूं। मुझे संदेह है कि वसंत ढांचा सर्वलेट-एपीआई 2.3 पर निर्भर करता है।

उत्तर

32

संदेश का मूल रूप से अर्थ है कि version सर्वलेट-एपीआई का पारगमन 2.3 हो गया था (इसलिए मूल रूप से कॉमन्स-लॉगिंग के पोम में वे संस्करण 2.3 के साथ सर्वलेट-एपीआई परिभाषित करते हैं), लेकिन संस्करण 2.5 को विशेष रूप से आपके प्रोजेक्ट में पूछा गया था, तो यही इस्तेमाल किया गया था।

वही दायरे के लिए चला जाता है। कॉमन्स-लॉगिंग के पोम में इसे compile के दायरे से परिभाषित किया गया है, लेकिन आपने इसे provided के दायरे से परिभाषित किया है, इसलिए फिर से उपयोग किया जाने वाला दायरा है।

+1

मेरे मामले (वसंत-डेटा-मगोडब) को छोड़कर मुझे नहीं पता कि मैंने प्रबंधित संस्करण को ओवरराइड किया है। – OrangeDog

+0

@ ऑरेंजडॉग मुझे एक ही समस्या है। मैंने पाया कि httpclient का पुराना संस्करण स्प्रिंग-बूट-स्टार्टर-पैरेंट पोम से आया था। – chalimartines

+0

ध्यान दें कि उन्हें "माता-पिता में" पोम में भी ओवरराइड किया जा सकता है, इसलिए सुनिश्चित करें कि वहां भी दोबारा जांच करें ... – rogerdpack

4

इसका मतलब है कि आपकी प्रोजेक्ट ने अन्य निर्भरताओं से version और scope को ओवरराइड किया था।

संबंधित मुद्दे