ग्रेडेल विरूपण साक्ष्य निर्भरता ग्राफ कमांड क्या है?


123

मैंने यह टिप्पणी ग्रैडल डॉक्स में पढ़ी :

To deal with problems due to version conflicts, reports with dependency graphs
are also very helpful. Such reports are another feature of dependency management.

मेरे पास किसी तरह का जार लाया जा रहा है, लेकिन मुझे यह पता लगाने की जरूरत है कि यह कहां से आ रहा है। आम तौर पर मैं विश्व स्तर पर इसे बाहर करूंगा, लेकिन मुझे यहां पदानुक्रम के बारे में कुछ जानकारी चाहिए। मुझे यह जानकारी कैसे मिलती है जैसे Ivy और Maven से कर सकते हैं?

यह उल्लेख करने के लिए नहीं कि कोई मेरी सूची में हाइबरनेट जार (बहुत कुछ) ला रहा है और मैं वास्तव में जानना चाहता हूं कि चूंकि मैं हाइबरनेट का उपयोग नहीं कर रहा हूं और उस निर्भरता को काटने का प्रयास कर रहा हूं।

जवाबों:


127

कमांड है gradle dependencies, और ग्रैडल 1.2 में इसका आउटपुट काफी सुधरा है। (आप पहले से ही आज 1.2-आरसी -1 की कोशिश कर सकते हैं।)


वास्तव में, मैंने कोशिश की है कि .... मुझे एहसास हुआ कि मेरी निर्भरता मेरे सबसे निचले स्तर के सबप्रोजेक्ट में है (यानी वह जो हर किसी पर निर्भर करता है) और मुख्य परियोजना में नहीं ... इस बात पर यकीन नहीं है कि यह बुरा है या अच्छा है ।
डीन हिलर

आपको उस विशेष परियोजना के लिए कमांड चलाने की आवश्यकता है जिसमें आप रुचि रखते हैं। आमतौर पर, आप परियोजना निर्देशिका में सीडी करेंगे और वहां से कमांड चलाएंगे।
पीटर निडरविसेर

9
यह सभी प्रकार की परियोजनाओं पर काम नहीं करता है। मुझे 'कोई कॉन्फ़िगरेशन नहीं' मिल रहा है और इसे प्राप्त करने के लिए कुछ और चलाने की आवश्यकता है। उम्मीद है कि एक दिन का समय संभाल लेगा, इसलिए वास्तविक आदेशों की भविष्यवाणी होने वाली है।
आर। वैन ट्विस्क

2
क्या वहाँ पर निर्भरता को शामिल करने के लिए एक झंडा है?
thetwan

1
वे स्वचालित रूप से शामिल हैं।
पीटर निडरविस्टर

121

आह, क्योंकि मेरे मास्टर प्रोजेक्ट में मेरी कोई निर्भरता नहीं थी, "ग्रेडल डिपेंडेंसी" केवल उन लोगों को सूचीबद्ध करती है और सबप्रोजेक्ट की निर्भरता नहीं होती है, इसलिए सही कमांड समाप्त हो रही है

 gradle :<subproject>:dependencies

तो मेरे लिए यह था

 gradle :master:dependencies

20
अच्छा लगा अगर आप -rपुनरावर्ती के लिए कह सकते हैं
ब्लंडेल

38

यदि आप परियोजना पर निर्भरताएँ देखना चाहते हैं और सभी उप-उत्पाद आपके शीर्ष-स्तरीय बिल्ड.ग्रेड में उपयोग करते हैं:

subprojects {
    task listAllDependencies(type: DependencyReportTask) {}
}

फिर कॉल करें:

gradle listAllDependencies

2
ब्लॉग पोस्ट में उस दृष्टिकोण के बारे में अधिक जानकारी: solidsoft.wordpress.com/2014/11/13/…
Marcin

9
आप ~/.gradle/init.gradleइसे हर बिल्ड में जोड़ने के बजाय इसे जोड़ सकते हैं । फिर यह आपकी मशीन पर सभी परियोजनाओं के लिए काम करता है, लेकिन केवल आपके लिए।
derekv 18

24

यदि आपको बहुत अधिक कॉन्फ़िगरेशन मिला है तो आउटपुट बहुत लंबा हो सकता है। रनटाइम कॉन्फ़िगरेशन के लिए निर्भरता दिखाने के लिए, चलाएं

gradle dependencies --configuration runtime

15

यदि आप सबप्रोजेक्ट को शामिल करने के लिए पुनरावर्ती चाहते हैं, तो आप इसे हमेशा स्वयं लिख सकते हैं:

शीर्ष-स्तर में चिपकाएँ build.gradle:

task allDeps << {
    println "All Dependencies:"
    allprojects.each { p ->
        println()
        println " $p.name ".center( 60, '*' )
        println()
        p.configurations.all.findAll { !it.allDependencies.empty }.each { c ->
            println " ${c.name} ".center( 60, '-' )
            c.allDependencies.each { dep ->
                println "$dep.group:$dep.name:$dep.version"
            }
            println "-" * 60
        }
    }
}

साथ दौड़ो:

gradle allDeps

5
gradlew -q :app:dependencies > dependencies.txt

फ़ाइल निर्भरता के लिए सभी निर्भरता लिखेंगे


4

react-nativeपरियोजनाओं में क्रमिक निर्भरता डिबग करने की तलाश करने वालों के लिए , कमांड है (से निष्पादित projectname/android)

./gradlew app:dependencies --configuration compile

0

ग्रैडल के हाल के संस्करणों में (अर्थात। 5+), यदि आप अपना निर्माण --scanध्वज के साथ चलाते हैं, तो यह आपको ब्राउज़र में सभी प्रकार की उपयोगी जानकारी, निर्भरता सहित, जहाँ आप क्लिक कर सकते हैं, बताता है।

gradlew --scan clean build

यह उस बिल्ड में क्या चल रहा है, इसका विश्लेषण करेगा। यह बहुत साफ है।


1
लेकिन यह केवल उन लक्ष्यों का विश्लेषण करता है जो पूरा ग्राफ़ नहीं चला :(।
डीन हिलर

सच! आपको क्या चाहिए इस पर यह निर्भर है। मुझे लगता है कि सिर्फ लक्ष्य के लिए निर्भरता और भी अधिक शक्तिशाली है। यह आपको बताएगा कि क्यों एक सेट का आदेश गलत काम करता है।
रयान

मैं वास्तव में पूरा ग्राफ चाहता हूं, इसलिए मुझे प्रत्येक नोड tbh का परीक्षण नहीं करना है .... जो काफी थकाऊ हो जाता है .... भले ही इसमें थोड़ा समय लगे, यह अधिक उपयोगी है, लेकिन मुझे ऐसा करने का कोई तरीका नहीं दिखता है नए संस्करणों में।
डीन हिलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.