2011-10-31 16 views
26

मैं कई pom.xml फ़ाइलों के साथ एक बड़ी परियोजनाओं पर काम कर रहा हूं और मुझे उपयोग की जाने वाली सभी पुस्तकालयों को निर्दिष्ट करने की आवश्यकता है। इसका मतलब है कि मुझे pom.xml फ़ाइलों को दोबारा पढ़ने और समूह आईडी, artifactId, स्कोप और संस्करण प्राप्त करने की आवश्यकता है। मैंने एमवीएन निर्भरता की जांच की: पेड़ लेकिन मुझे इसे एक पठनीय प्रारूप में फ़ाइल में प्रिंट करने का कोई तरीका नहीं मिल रहा है। मैंने appendOutput देखा लेकिन मैंने cmd में इसका उपयोग करने के तरीके पर कोई उदाहरण नहीं देखा। मैंने लिनक्स में कुछ समाधान किए हैं लेकिन मेरे पास केवल विंडोज एक्सपी तक पहुंच है।एक पठनीय प्रारूप में फ़ाइल में मुद्रित मेवेन निर्भरता कैसे प्राप्त करें?

उत्तर

53

यह निर्भरता के लिए कमांड लाइन विकल्प के साथ (कम से कम अब) किया जा सकता है: पेड़ प्लगइन।

प्रयास करें:

mvn dependency:tree -Doutput=/path/to/file 

संदर्भ: Maven Dependency Plugin Page

आप केवल के बारे में "पठनीय" प्रारूप पूछा, लेकिन आप भी विभिन्न विकल्पों के साथ -DoutputType पैरामीटर पारित कर सकते हैं। यह भी ध्यान रखें कि संस्करण मैं स्थापित किया है, मैं निम्नलिखित चेतावनी मिलती है:

[WARNING] The parameter output is deprecated. Use outputFile instead. 

तो,/-DoutputFile =/पथ के साथ यह कोशिश कर/फ़ाइल

इसके अलावा करने के लिए, मैं प्राप्त करने में असमर्थ था पर विचार - मुझे डिफ़ॉल्ट पाठ के अलावा कुछ भी देने के लिए DoutputType paramater, लेकिन इसके साथ खेलने का मौका नहीं था। YMMV।

+1

-Dmdep काम करता है।outputFile = – AndyS

+0

-Dmdep.outputFile =/path/to/file.txt काम किया, अन्य सभी विकल्प नहीं थे – sloven

0

तुम हमेशा MinGW and MSYS स्थापित और फिर Windows

में dependency:tree का उपयोग कर लिनक्स उदाहरण का उपयोग
0

शायद effective-pom (फ़ाइल को बचाने के लिए कुछ linux आदेशों के साथ संयोजन के रूप में) आपकी ज़रूरतें पूरी हो सकती है कर सकते हैं।

3

<plugin> 
    <groupId>org.apache.servicemix.tooling</groupId> 
    <artifactId>depends-maven-plugin</artifactId> 
</plugin> 

प्लगइन जोड़ना परियोजना के साथ एक classes/META-INF/maven/dependencies.properties फ़ाइल आसानी से parseable निर्भरता पैदा करता है। उत्पादन का उत्पादन

उदाहरण:

# Project dependencies generated by the Apache ServiceMix Maven Plugin 
# Generated at: Mon Oct 10 17:43:00 CEST 2011 

groupId = my.group.name 
artifactId = my.artifact.name 
version = 0.0.1-SNAPSHOT 
my.group.name/my.artifact.name/version = 0.0.1-SNAPSHOT 

# dependencies 

junit/junit/version = 4.8 
junit/junit/type = jar 
junit/junit/scope = test 

org.easymock/easymock/version = 2.4 
org.easymock/easymock/type = jar 
org.easymock/easymock/scope = test 
4

जीएनयू/लिनक्स पर मैं सिर्फ mvn dependency:tree > myFile करना होगा। हालांकि, अगर आप केवल विंडोज़ तक ही सीमित हैं, तो मैं कमांड के आउटपुट स्ट्रीमिंग के लिए विंडोज़ सिंटैक्स की तलाश करूंगा।

this site (केवल Google से शीर्ष परिणाम) के अनुसार ऐसा लगता है कि विंडोज़ कंसोल भी आउटपुट स्ट्रीम को i.e. फ़ाइल को निर्देशित करने के लिए > साइन का उपयोग करता है। तो क्या आप इसे करने की कोशिश करेंगे?

+3

पर अन्य विकल्प उपलब्ध देखें आदेश विंडोज के लिए ही है। –

+0

> पॉज़िक्स से है। विंडोज़ में यह अच्छी तरह से – kingoleg

1

यदि आपके पास एक ही रेपो/प्रोजेक्ट के तहत कई मॉड्यूल हैं और एक फ़ाइल में सभी मॉड्यूल की निर्भरता चाहते हैं, ताकि बी/डब्ल्यू एक बिल्ड को अलग करने में सक्षम हो और दूसरा यह देखने के लिए कि कहीं कुछ बदल गया है, तो आप

$project_dir> mvn dependency:tree -DoutputFile=<absolute_path_to_file> -DappendOutput=true 

उदा।

$project_dir> mvn dependency:tree -DoutputFile=`pwd`/mvn_dependency_tree.txt -DappendOutput=true 

https://maven.apache.org/plugins/maven-dependency-plugin/tree-mojo.html