एक कलाकृति के लिए निर्भरता का पेड़ कैसे प्राप्त करें?


123

dependency:treeकिसी दिए गए प्रोजेक्ट के लिए निर्भरता ट्री को देखने के लिए उपयोग किया जा सकता है। लेकिन मुझे जो आवश्यकता है वह एक 3 पार्टी विरूपण साक्ष्य के लिए निर्भरता के पेड़ को देखने के लिए है।

मुझे लगता है कि मैं एक खाली परियोजना बना सकता हूं, लेकिन मैं कुछ आसान खोज रहा हूं (मुझे कई कलाकृतियों के लिए ऐसा करने की आवश्यकता है)।

जवाबों:


158

1) मावेन निर्भरता प्लगइन का उपयोग करें

केवल pom.xml के साथ एक सरल प्रोजेक्ट बनाएं। अपनी निर्भरता जोड़ें और चलाएं:

mvn dependency:tree

दुर्भाग्य से निर्भरता मोजो pom.xml का उपयोग करना चाहिए या आपको निम्न त्रुटि मिलती है:

मौजो को अंजाम नहीं दे सकता: पेड़। इसके लिए मौजूदा pom.xml के साथ एक प्रोजेक्ट की आवश्यकता होती है, लेकिन बिल्ड एक का उपयोग नहीं कर रहा है।

2) मावेन सेंट्रल रिपॉजिटरी में अपनी कलाकृतियों के pom.xml का पता लगाएं

निर्भरताएँ वर्णित हैं अपनी कलाकृतियों के pom.xml में। मावेन अवसंरचना का उपयोग करके इसे खोजें।

Http://search.maven.org/ पर जाएं और अपना groupId और विरूपण साक्ष्य दर्ज करें।

या आप http://repo1.maven.org/maven2/ पर जा सकते हैं और पहले प्लगइन्स ग्रुपआईडी का उपयोग करके नेविगेट कर सकते हैं , बाद में आर्टिफ़ायड का उपयोग कर और अंत में इसके संस्करण का उपयोग कर सकते हैं।

उदाहरण के लिए देखें org.springframework: स्प्रिंग-कोर

3) अपनी कलाकृतियों के खिलाफ मावेन निर्भरता प्लगइन का उपयोग करें

निर्भरता विरूपण साक्ष्य का एक हिस्सा एक pom.xml है। यह निर्दिष्ट करता है कि यह निर्भरता है। और आप mvan निर्भरता को निष्पादित कर सकते हैं : इस पोम पर पेड़


3
जैसा कि मैंने कहा, मैं एक परियोजना बनाने की आवश्यकता से बचना चाहता हूं
इट्टायड जूल २

आप एक प्रोजेक्ट नहीं बना रहे हैं, आप सिर्फ एक पोम फाइल डाउनलोड कर रहे हैं।
सीन पैट्रिक फ्लोयड

1
आपको एक नई परियोजना बनाने की आवश्यकता नहीं है। बस अपने स्थानीय रिपॉजिटरी पर एक नज़र डालें और एटिट्यूड का pom.xml खोजें
amra

यदि बच्चा मॉड्यूल मौजूद नहीं है तो यह काम नहीं करता है। जैसे `` `mvan -f ~ / .m2 / रिपॉजिटरी / ऑर्ग / jboss / सिक्योरवैप / डिस्क्रिप्टर / सिक्रेटवैप-डिस्क्रिप्टर-पैरेंट / 2.0.0-अल्फा -10 / सिक्रेटवैप-डिस्क्रिप्टर-पैरेंट-2.0.0-अल्फा -10। pom depen dency: tree [INFO] परियोजनाओं के लिए स्कैनिंग ... [ERROR] [ERROR] POMs को संसाधित करते समय कुछ समस्याओं का सामना करना पड़ा: [ERROR] चाइल्ड मॉड्यूल ~ / .m2 / रिपॉजिटरी / org / jboss / compresswrap / descriptionwrap /rapwrap। -descriptors- पैरेंट / 2.0.0-अल्फा -10 / एपीआई-बेस ... / डिस्क्रिप्टर-पैरेंट / 2.0.0-अल्फा -10 / सिक्रेटवैप-डिस्क्रिप्टर-पैरेंट-2.0-अल्फा-10.पोम नहीं करता है मौजूद `` `
डिंग-यी चेन

1
मल्टी-मॉड्यूल मावेन प्रोजेक्ट (यानी कई pom.xmlफाइलों के साथ प्रोजेक्ट ) के लिए आपको त्रुटि हो सकती है। mvn compile dependency:treeफिर कोशिश करें ।
izogfif

49

यदि आप एक नमूना परियोजना बनाने और अपने तीसरे पक्ष की निर्भरता को जोड़ने के लिए परेशान करते हैं, तो आप निर्भरता के पूर्ण पदानुक्रम को देखने के लिए निम्नलिखित चला सकते हैं।

आप इस मावेन कमांड का उपयोग करके एक विशिष्ट कलाकृति की खोज कर सकते हैं :

mvn dependency:tree -Dverbose -Dincludes=[groupId]:[artifactId]:[type]:[version]

प्रलेखन के अनुसार:

जहां प्रत्येक पैटर्न खंड वैकल्पिक है और पूर्ण और आंशिक * वाइल्डकार्ड का समर्थन करता है। एक खाली पैटर्न सेगमेंट को एक निहित वाइल्डकार्ड के रूप में माना जाता है।

कल्पना करें कि आप अपनी परियोजना के विभिन्न मॉड्यूलों के बीच 'log4j-1.2-api' जार फ़ाइल खोजने की कोशिश कर रहे हैं:

mvn dependency:tree -Dverbose -Dincludes=org.apache.logging.log4j:log4j-1.2-api

अधिक जानकारी यहां पाई जा सकती है

संपादित करें: कृपया ध्यान दें कि वर्बोज़ पैरामीटर के उपयोग के लाभों के बावजूद , यह कुछ स्थितियों में इतना सटीक नहीं हो सकता है। क्योंकि यह मावेन 2 एल्गोरिथ्म का उपयोग करता है और मावेन 3 के साथ उपयोग किए जाने पर गलत परिणाम दे सकता है।


2
महान सुझाव! -Dverboseमुझे वह पूरा पेड़ दिखाने के लिए पर्याप्त था जिसकी मुझे ज़रूरत थी। आउटपुट को lessसमान includesया groupId
सम्‍मिलित

यह उस pom.xml के बिना काम नहीं कर रहा है, जिसमें आप जिस आर्टिफैक्ट को देख रहे हैं, वह मौजूद है। अन्यथा आप प्राप्त करें[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:tree (default-cli): Goal requires a project to execute but there is no POM in this directory (...). Please verify you invoked Maven from the correct directory. -> [Help 1]
Eisenknurr

-Dverbose निर्भरता प्लगइन में पदावनत किया गया है, इसलिए यह तब तक काम नहीं करता है जब तक कि आप एक पुराने संस्करण का उपयोग नहीं कर रहे हैं।
टूलबार

6

समाधान निर्भरता को कॉल करने के लिए है: विरूपण साक्ष्य pom.xml फ़ाइल के साथ पेड़:

mvn -f "$HOME/.m2/repository/$POM_PATH" dependency:tree

यह भी देखें कि एक भंडार से एक विरूपण साक्ष्य की सकर्मक निर्भरता कैसे सूचीबद्ध करें?


केंद्रीय वितरण से डाउनलोड की गई कलाकृतियों के साथ यह काम नहीं हो सकता है, क्योंकि 'वितरण प्रबंधन.स्टैटस'। यह अपलोड पर केंद्रीय भंडार द्वारा जोड़ा जाता है। और यह निर्भरता बनाएगा: पेड़ पोम फाइल पर सत्यापन को विफल करता है। मुद्दे
अरनौद जीसेन

2

यदि आप m2eclipse के वर्तमान संस्करण का उपयोग करते हैं (जो आपको ग्रहण और मावेन का उपयोग करना चाहिए):

मेनू प्रविष्टि का चयन करें

Navigate -> Open Maven POM

और आपके द्वारा ढूंढी जा रही कलाकृतियों को दर्ज करें।

पोम एडिटर में पोम खुलेगा, जिसमें से आप Dependency Hierarchyनिर्भरता पदानुक्रम को देखने के लिए टैब का चयन कर सकते हैं (जैसा कि नाम से पता चलता है :-))


2
ठीक है, तो यह उत्तर अन्य उपयोगकर्ताओं के लिए है :-)
सीन पैट्रिक फ्लोयड

1

यदि आपकी कलाकृति किसी दिए गए प्रोजेक्ट की निर्भरता नहीं है, तो आपका सबसे अच्छा शर्त एक रिपॉजिटरी सर्च इंजन का उपयोग करना है । उनमें से कई किसी दिए गए कलाकृतियों की निर्भरता का वर्णन करते हैं।


कलाकृतियों में मेरी दिलचस्पी एक कंपनी के उत्पाद का हिस्सा है
IttayD

तो अमरा का जवाब तुम्हारा सबसे अच्छा शर्त है, मुझे डर है।
सीन पैट्रिक फ्लॉइड

@ आईटीडीडी: आप अपने प्रश्न में इस तरह के महत्वपूर्ण विवरण का उल्लेख क्यों नहीं करते हैं ? यह बेहतर जवाब पाने में मदद करेगा IMHO (और पाठकों को अपना समय बर्बाद नहीं करने में भी मदद कर सकता है)।
पास्कल थिवेंट

0

यदि आप निर्भरता के पेड़ का एक ग्राफिकल, खोज योग्य प्रतिनिधित्व (अपनी परियोजना से सभी मॉड्यूल सहित, सकरात्मक निर्भरता और बेदखली जानकारी) प्राप्त करना चाहते हैं, तो UpdateImpact देखें: https://app.updateimpact.com (मुफ्त सेवा)।

अस्वीकरण: मैं साइट के डेवलपर्स में से एक हूं


0

मुझे पता है कि यह पोस्ट काफी पुरानी है, लेकिन फिर भी, अगर कोई इंटेलीज का उपयोग करता है तो कोई भी निर्भरता के पेड़ को सीधे आईडीई में देखना चाहता है तो वे मावेन हेल्पर प्लगिन प्लगइन स्थापित कर सकते हैं ।

एक बार खुला pom.xml स्थापित कर लें और आप नीचे की तरह निर्भरता विश्लेषण टैब देख पाएंगे । यह निर्भरता देखने का विकल्प भी प्रदान करता है जो केवल और साथ ही एक वृक्ष संरचना के रूप में भी विवादित है।

यहाँ छवि विवरण दर्ज करें

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