2011-01-20 37 views
6

Chúng ta hãy nói, ArtifactA phụ thuộc vào ArtifactB và ArtifactC cũng phụ thuộc vào ArtifactBMaven: Làm thế nào để tìm các đồ tạo tác mà phụ thuộc vào vật khác

Tôi hiểu rằng "mvn phụ thuộc plugin" có thể giúp liệt kê các phụ thuộc của một dự án/vật .

Nhưng ngược lại thì sao? Nếu tôi muốn tìm danh sách các dự án/hiện vật phụ thuộc vào một tạo phẩm nhất định? Từ ví dụ trên, được cung cấp ArtifactB, tôi muốn nhận ArtifactA và ArtifactC

Làm cách nào để đạt được điều này?

+0

Bản sao có thể có của [Cách tạo biểu đồ phụ thuộc giữa tất cả các mô-đun của dự án Maven?] (Https://stackoverflow.com/questions/4084669/how-to-generate-a-graph-of-the -dự phụ thuộc giữa tất cả các module-of-a-maven-project) –

Trả lời

5

Maven chỉ có thể hoạt động trên dự án hiện tại, vì vậy nó chỉ có thể phát hiện các phụ thuộc giữa dự án hiện tại (hoặc mô-đun phụ) cho các dự án khác (bao gồm các mô-đun phụ của dự án hiện tại).

Vì vậy, những gì bạn có thể làm là tìm kiếm cho submodules cụ thể tùy thuộc vào các môđun con khác:

     mycompany:parent 
        /    \ 
     mycompany:child1  mycompany:child2 
      /    /    \ 
    mycompany:grandchild1 mycompany:grandchild2 mycompany:grandchild3 

Đây là cách bạn có thể tìm thấy tất cả các tiểu dự án có phụ thuộc vào grandchild3:

mvn validate -pl child2/grandchild3 -amd 

này sẽ chạy giai đoạn validate trên tất cả các dự án trong dự án hiện tại phụ thuộc vào grandchild3.

2

Thật không dễ chút nào. Một tùy chọn là sử dụng m2eclipse có tính năng được gọi là Tìm kiếm theo lớp. Trong khung nhìn kho lưu trữ maven, nhấn chuột phải vào một kho lưu trữ và cho phép chỉ mục đầy đủ. Sau đó điều hướng> Mở loại từ maven - ở đó bạn có thể xem xét tất cả các tạo phẩm có sẵn dựa trên quy ước gói java.

Một tùy chọn khác là phát triển công cụ của riêng bạn dựa trên JarAnalyzer, sẽ chấp nhận tệp JAR và tìm kiếm thông qua kho lưu trữ maven cục bộ của bạn, tìm kiếm các tạo tác thích hợp nhất đáp ứng các gói/lớp đã nhập từ JAR.

+0

thực sự rất dễ dàng với 'mvn validate', xem câu trả lời của @Sean Patrick Floyd – tsayen

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