2012-04-19 28 views
9

Tôi đang đối mặt với một dự án mô-đun đa mô-đun khá lớn. Tôi muốn xem cách dự án gốc (cha mẹ) được tạo ra từ các dự án con/dự án con dưới dạng groupId: artifactId (có thể với một số nhận dạng để phản ánh phân cấp.Có cách nào để in cấu trúc của dự án maven đa mô-đun không?

Tất nhiên tôi có thể viết plugin của riêng mình có được bản in này, nhưng tôi nghĩ rằng phải có một cái gì đó có sẵn của các kệ,

Trả lời

5

Xin chào cuối câu trả lời nhưng tôi đã thêm một plugin vào kho maven:

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

để chạy plugin bạn sẽ cần phải thêm vào pom của bạn như sau:

<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> 

sau đó đầu ra sẽ trông giống như:

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

Project structure (all modules): 



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

Nếu bạn muốn in tất cả các file insted của module sử dụng mục tiêu: printAll hoặc nếu bạn chỉ muốn thư mục sử dụng mục tiêu: printFolders. <inherited> có nghĩa là không thực hiện plugin cũng trong các mô-đun và <ignore> có nghĩa là bỏ qua các tệp này bằng cách sử dụng mẫu regex.

CHỈNH SỬA: không bao giờ phiên bản bạn có thể lấy từ github: https://github.com/buraksarac/MavenStructurePlugin

+1

Plugin này thật tuyệt vời! Bạn là nhất. – javajavajava

+0

@javajavajava Tôi vui vì nó đã giúp :) – HRgiger

+1

@HRgiger công việc tuyệt vời! Đây chính là điều tôi muốn. Xin lỗi vì trả lời trễ (rất) của tôi. – sjaak

0

Tôi chưa gặp phải plugin như vậy cho đến nay và thậm chí không nghe nói về nó. để viết plugin riêng hoặc cố gắng phân tích cú pháp mvn dependency:tree hoặc chỉ đơn đặt hàng xây dựng lò phản ứng, có thể sử dụng rất nhiều đầu ra của giao diện điều khiển và do đó,

+0

Cảm ơn. Tôi đã sợ câu trả lời đó rồi. – sjaak

0

Tôi nghĩ rằng mvn dependency:tree là cách đi.

Bạn nên cố gắng này:

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

Bằng cách đó, bạn sẽ có một cây phụ thuộc tốt đẹp với thụt đầu dòng nhưng không có phạm vi, phiên bản và gõ :)

+0

Cảm ơn. Nhưng tôi có nghĩa là nó theo hướng ngược lại. Có, bạn có thể in các phụ thuộc của một thành phần phụ bằng cây. Tuy nhiên, bạn có thể thu thập tất cả các phụ thuộc theo yêu cầu của dự án gốc (được cấu thành từ các thành phần phụ) không? – sjaak

Các vấn đề liên quan