Sử dụng mvn dependency:analyze
để cho bạn biết liệu có phụ thuộc vào pom của bạn mà bạn không cần (nó cũng có thể xác định một số mà bạn đã bỏ lỡ, thêm -DoutputXML=true
để hiển thị các mục mất tích).
Sử dụng mvn dependency:tree
để cho bạn biết các phụ thuộc hiện đang được sử dụng bởi dự án của bạn và nơi Maven đang tìm kiếm chúng. Thêm -Dverbose=true
để hiển thị tất cả các trùng lặp và xung đột.
Nếu a
trực tiếp phụ thuộc vào c
(có nghĩa là nếu mã trong a
đề cập đến các lớp học trong c
), thì pom nên phản ánh điều đó. Nếu a
chỉ phụ thuộc trực tiếp vào b
, thì bạn có thể xóa phụ thuộc c
một cách an toàn khỏi tệp pom.xml của a
. Các lệnh trên sẽ cho phép bạn xác định hành động tiếp theo thích hợp là gì.
Chỉnh sửa: OK, bạn đã cập nhật câu hỏi của mình. Dưới đây là cách bạn thực hiện:
- trong dự án
a
, chạy mvn dependency:tree -Dverbose=true
. Điều này sẽ cho bạn thấy một cây hoàn chỉnh của tất cả các phụ thuộc được Maven xem xét cho dự án của bạn.
- Nhìn vào đầu ra của bước 1 và tạo danh sách tất cả các phụ thuộc được hiển thị ở nhiều cấp độ sâu (một số có thể là bản sao).
- Chỉnh sửa tập tin pom.xml của bạn trong bất cứ trình soạn thảo bạn thích và loại bỏ bất kỳ phụ thuộc phù hợp với danh sách mà bạn đã tạo ở bước 2.
Hoặc Bạn đang tìm kiếm một cách để làm điều đó tự động? Tôi không nghĩ rằng có bất kỳ cách tự động nào trừ khi bạn tự viết một mình, bởi vì những gì bạn đang cố gắng làm là BAD IDEA. Bạn đang nói với mọi người rằng phản đối của họ là "không thích hợp" với câu hỏi của bạn, nhưng thực tế là câu hỏi của bạn giống như hỏi "Làm thế nào tôi có thể sử dụng Maven để làm cho việc sử dụng Maven khó khăn hơn?"
Không có lý do chính đáng nào khiến bạn muốn thực hiện việc này. Nếu bạn nghĩ rằng có một lý do chính đáng, thì bạn phải cố gắng thực hiện nó để tạo ra một số kết quả.Bạn nên yêu cầu giúp đỡ với kết quả mong muốn, bởi vì kế hoạch của bạn là một kế hoạch xấu.
Nguồn
2010-10-01 08:45:43
Và những gì * là * các câu hỏi? –
Và sau đó xây dựng của bạn phá vỡ nếu b thay đổi và không còn phụ thuộc vào c. Tại sao bạn muốn che giấu sự phụ thuộc đó, nếu nó thực sự ở đó? –
@Thomas không liên quan đến câu hỏi này. –