2012-04-19 13 views
9

मुझे एक बड़ा बहु मॉड्यूल मैवेन प्रोजेक्ट का सामना करना पड़ रहा है। मैं देखना चाहता हूं कि रूट (पैरेंट) प्रोजेक्ट समूह के रूप में उपप्रोजेक्ट/बाल परियोजनाओं से कैसे बना है Id: artifactId (पदानुक्रम को प्रतिबिंबित करने के लिए कुछ पहचान के साथ संभव है।क्या मल्टी-मॉड्यूल मैवेन प्रोजेक्ट की संरचना मुद्रित करने का कोई तरीका है?

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

उत्तर

5

हैलो देर जवाब होगा, लेकिन मैं एक प्लगइन जोड़ लिया है

:

<dependency> 
    <groupId>org.qunix</groupId> 
    <artifactId>structure-maven-plugin</artifactId> 
    <version>0.0.1</version> 
</dependency> 

आप नीचे के रूप में अपने पोम में जोड़ने की आवश्यकता होगी प्लगइन चलाने के लिए: Maven भंडार में

<build> 
     <plugins> 

      <plugin> 
       <groupId>org.qunix</groupId> 
       <artifactId>structure-maven-plugin</artifactId> 
       <version>0.0.1</version> 
       <inherited>false</inherited> 
       <executions> 
        <execution> 
         <phase>compile</phase> 
         <goals> 
          <goal> 
           printModules 
          </goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 

    </build> 

तो उत्पादन दिखेगा की तरह:

[INFO] --- structure-maven-plugin:0.0.1:printModules (default) @ test --- 
[INFO] 

Project structure (all modules): 



       test 
       | 
       |__ a 
       | 
       |__ b 
       | 
       | 
       \__ c 
        | 
        |__ d 
        | 
        |__ e 
        | 
        |__ f 

आप मुद्रित करने के लिए सभी फ़ाइलों मॉड्यूल के insted चाहते हैं लक्ष्य का उपयोग करें: printAll या यदि आप बस चाहते हैं फ़ोल्डरों लक्ष्य का उपयोग करें: printFolders<inherited> का मतलब है मॉड्यूल में प्लगइन निष्पादित न करें और <ignore> मतलब रीजिक्स पैटर्न का उपयोग करके इन फ़ाइलों को छोड़ दें।

संपादित करें: https://github.com/buraksarac/MavenStructurePlugin

+1

यह प्लगइन कमाल है! आप सर्वश्रेष्ठ हैं। – javajavajava

+0

@javajavajava मुझे खुशी है कि यह मदद मिली :) – HRgiger

+1

@HRgiger महान काम! जैसा मुझे चाहिए था यह बिल्कुल वैसा ही है। मेरे (बहुत) देर से उत्तर के लिए खेद है। – sjaak

0

मुझे अब तक इस तरह की प्लगइन का सामना नहीं हुआ है और न ही किसी के बारे में सुना है। Google इसके बारे में भी नहीं जानता है, इसलिए संभव है कि आपके पास अपनी प्लगइन लिखने के लिए या mvn dependency:tree या केवल रिएक्टर बिल्ड ऑर्डर का उपयोग करने का प्रयास करें, शायद भारी कंसोल आउटपुट स्ट्रीमिंग का उपयोग कर।

+0

धन्यवाद: वहाँ संस्करण आप GitHub से खींच सकते हैं नहीं है। मैं पहले से ही उस जवाब से डर गया था। – sjaak

0

मुझे लगता है कि एमवीएन dependency:tree रास्ता है जाना।

आप इस प्रयास करना चाहिए:

mvn dependency:tree -DoutputFile=target/dependencies.txt 
cat target/dependencies.txt | awk -F ':' '{print $1":"$2}' 

इस तरह, आप खरोज के साथ लेकिन गुंजाइश, संस्करण के बिना एक अच्छा निर्भरता वृक्ष है और टाइप :)

+0

धन्यवाद। लेकिन मेरा मतलब यह विपरीत दिशा में था। हां, आप पेड़ के माध्यम से उप घटक की निर्भरताओं को मुद्रित कर सकते हैं। हालांकि, क्या आप रूट प्रोजेक्ट द्वारा आवश्यक सभी निर्भरताओं को भी एकत्र कर सकते हैं (जो उप घटकों का गठित है)? – sjaak

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

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