2011-04-27 18 views
11

जब मैं अपने प्रोजेक्ट का निर्माण, मैं इन चेतावनियों मिलती है:मैं पीओएम का पता कैसे लगा सकता हूं जो लापता पीओएम का अनुरोध करता है?

[INFO] ------------------------------------------------------------------------ 
[INFO] Building XXX 
[INFO] ------------------------------------------------------------------------ 
[WARNING] The POM for org.eclipse.update:org.eclipse.update.configurator:jar:3.2.0 is missing, no dependency information available 
[WARNING] The POM for org.eclipse.emf:org.eclipse.emf.ecore:jar:2.3.2 is missing, no dependency information available 
[WARNING] The POM for com.ibm.icu:com.ibm.icu:jar:3.4.4 is missing, no dependency information available 

अपने निर्माण में, मैं इन निर्भरता और निर्माण ही सफल होता है के संस्करणों को ओवरराइट।

चेतावनियों को ठीक करने का सबसे तेज़ तरीका क्या है?

संपादित करें: इन संस्करणों वाले पीओएम का पता लगाने का सबसे तेज़ तरीका क्या है?

नोट: मेरे स्थानीय रेपो में मेरे पास 7000 पीओएम हैं।

+0

आपके द्वारा उपयोग की जा रही निर्भरताओं के पोम को बदलें या अन्य संस्करणों का उपयोग करें जहां पोम सही हैं या यहां तक ​​कि मौजूद हैं। – khmarbaise

+0

यह स्पष्ट रूप से बता रहा है कि आप जो निर्भरता दे रहे हैं उसका संस्करण आपके स्थानीय भंडार में मौजूद नहीं है। या तो सही संस्करण डालें या तत्व को पूरी तरह हटाने का प्रयास करें। – Arpit

+0

@ एपिट: मेरी परियोजना के पीओएम में संस्करण सही है; यह एक पारस्परिक निर्भरता है जो गलत है। मैं कैसे पता लगा सकता हूं? 'एमवीएन निर्भरता: पेड़' केवल अंतिम संस्करण दिखाता है, न कि जिन्हें ओवरराइट किया गया था। –

उत्तर

9

dependency-plugin

से विश्लेषण उपकरण कोशिश विशेष रूप से mvn dependency:analyze-dep-mgt

+1

वास्तव में एक बहुत ही उपयोगी कमांड +1 करता है। अगर यह सिर्फ * जो * पीओएम समस्या का कारण बनता है ... –

0

आप इस्तेमाल कर सकते हैं निर्भरता: पेड़ क्या पोम एक आप

+0

जैसा कि मैंने कई बार कहा था: इससे मुझे पता चलता है कि निर्माण क्या उपयोग करता है। निर्माण काम करता है। लेकिन मुझे अभी भी चेतावनियां मिल रही हैं क्योंकि कहीं भी, मैवेन पीओएम देखता है जो अंतिम कक्षा के हिस्से * नहीं * हैं। मैं उनको कैसे देखूं? –

+0

स्पष्ट तरीका आपके पोम से ओवरराइड को हटाने और निर्भरता चलाने के लिए होगा: तब पेड़। यह अभी भी 7000 पोम्स के माध्यम से बहने से बेहतर है ... हालांकि मैंने सोचा कि निर्भरता अनुभाग आपको चेतावनी दिए बिना ओवरराइड करेगा। क्या आपके पास ऐसा कुछ उदाहरण है जो उस प्रकार की समस्या उत्पन्न करता है जिसे हम चला सकते हैं? – Lionel

3
कुछ चीजें हैं जो मदद कर सकता है

भूल रहे हैं का संदर्भ देखने के लिए:

mvn dependency:tree -Dverbose=true अप्रयुक्त डुप्लिकेट/संस्करणों को थका सकता है। मेरे मामले में पर्याप्त नहीं था, हालांकि, किसी कारण से यह अपमानजनक जार सूचीबद्ध नहीं था [?]। यह भीड़दार जार के वंशज नहीं दिखाता है, जो उपयोगी हो सकता है या नहीं भी हो सकता है।

रेफरी: http://jira.codehaus.org/browse/MDEP-123

Intellij सूचीबद्ध कर सकते हैं क्या यह सोचता है कि पोम के और रास्तों को ठेस कर रहे हैं (pom.xml फ़ाइल खोलते हैं, तो रेखांकित "परियोजना" पर होवर:

intellij dependency list

दुर्भाग्य से कोई भी यह मेरे लिए पर्याप्त था, या तो

तब मैंने देखा कि यदि आप अपने ~/.m2/रिपोजिटरी से अपमानजनक निर्देशिका को हटाते हैं, तो इसे फिर से डाउनलोड किया जाएगा और मूल रूप से खाली होगा। तो मुझे लगता है कि क्या यह त्रुटि संदेश कभी-कभी इसका मतलब हो सकता है कि "आपका नेक्सस एक संस्करण सूचीबद्ध करता है जो वास्तव में डाउनलोड के लिए उपलब्ध नहीं है।" ऐसा लगता है कि डिफ़ॉल्ट रूप से मैवेन, यदि आप उदाहरण के लिए अनुरोध करते हैं तो कॉमन्स-लॉगिंग 1.1.1, पोम के डाउनलोड करने का प्रयास करेगा आम लॉगिंग के सभी ज्ञात संस्करणों के लिए, फिर, मेरे मामले में, यह चेतावनी थूक गया लेकिन यह सौम्य था। ओह!

तो सच में, आपकी कोई भी परियोजना खराब पाम (या खराब संस्करण इत्यादि) को चेतावनी दे सकती है, नेक्सस के मेटाडेटा इंडेक्स को छोड़कर।

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