2012-03-14 52 views
12

Trước hết, hãy để tôi bắt đầu bằng cách nói mvn dependency:tree không hoạt động trong trường hợp của tôi. Tôi đang làm việc trên một codebase đã tồn tại đang đưa ra lỗi xây dựng. Vấn đề là các repo maven (bao gồm cả nexus) không có POM cho một phụ thuộc transitive (org.apache.ws.security:wss4j:pom:1.5.2) trong dự án này.Lấy cây phụ thuộc của dự án maven với sự thiếu phụ thuộc

Tôi muốn tìm phụ thuộc này đến từ đâu. Nó có thể là một sự phụ thuộc quá độ, bởi vì nó không được liệt kê trong pom của dự án cũng như trong poms cha mẹ. Gọi mvn dependency:tree không hoạt động vì nó cũng không thành công với cùng một lỗi tôi nhận được khi sử dụng mvn install (Thời gian chờ kết nối). Lỗi được đưa ra dưới đây.

Vì vậy, làm thế nào tôi có thể xác định phụ thuộc nào cố tải xuống pom này? Tôi muốn một câu trả lời chung để tìm cây phụ thuộc hơn là tập trung vào wss4j pom đã nêu ở trên.

[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Sample/XKMS 4.5.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
Downloading: http://ws.zones.apache.org/repository2/org/apache/ws/security/wss4j/1.5.2/wss4j-1.5.2.pom 

[WARNING] The POM for bouncycastle:bcprov-jdk13:jar:132 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3:10.155s 
[INFO] Finished at: Wed Mar 14 10:35:20 IST 2012 
[INFO] Final Memory: 7M/490M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal on project wso2appserver-samples-xkms: Could not resolve dependencies 
for project org.wso2.appserver:wso2appserver-samples-xkms:jar:4.5.0-SNAPSHOT: Failed to collect dependencies for [org.wso2.xkms:xkms:jar:2.2 (compile)]: Failed to read artifact descriptor for org.apache.ws.security:wss4j:jar:1.5.2: 
Could not transfer artifact org.apache.ws.security:wss4j:pom:1.5.2 from/to ws-zones-repository (http://ws.zones.apache.org/repository2): Error transferring file: Connection timed out -> [Help 1] 
+0

'[CẢNH BÁO] POM cho bouncycastle: bcprov-jdk13: jar: 132 là không hợp lệ, phụ thuộc transitive (nếu có) sẽ không có sẵn, cho phép gỡ lỗi đăng nhập để biết thêm chi tiết' Thêm pom của bạn - có thể một trong các plugin (cxf) cần nó –

+0

Bạn đang nói rằng cảnh báo này là lý do để xây dựng thất bại? Như tôi đã thấy cho đến nay, CẢNH BÁO không gây ra lỗi xây dựng. Và, thông báo lỗi nói rằng "Không thể chuyển giao art.act org.apache.ws.security:wss4j:pom:1.5.2" !! Tôi đang thiếu gì ở đây? –

Trả lời

25
mvn dependency:tree --debug 

xuất ra cây trước khi bị lỗi trong trường hợp của tôi.

+2

Đây là cách tốt hơn so với cài đặt một số plugin eclipse điên. Đã làm cho tôi. –

+0

Có, điều này đang làm việc hầu hết thời gian ... Trong trường hợp, tôi không nhìn thấy cây mặc dù. Nhưng điều này là đủ tốt. Cảm ơn. –

0

Bạn tìm thấy một lỗi - xem WSS-136

Sử dụng kho: http://maven.alfresco.com/nexus/content/groups/public/

http://maven.alfresco.com/nexus/content/groups/public/org/apache/ws/security/wss4j/1.5.2/

làm việc xung quanh là tìm kiếm kho maven khác hoặc cài đặt tại địa phương.

+0

Cảm ơn sự cố jira. Điều này dường như là trường hợp. Nhưng thật không may, pom nói là thậm chí không có trong liên kết bạn cung cấp. (chỉ có cái lọ ở đó). Chúng tôi có kho lưu trữ nexus riêng của mình, vì vậy có lẽ chúng ta nên lưu trữ một pom giả ở đó! –

+2

Và, nó không giải quyết câu hỏi ban đầu về cách tìm cây phụ thuộc trong một dịp như thế này ... –

+0

Bạn hoan nghênh. Bạn có thể làm theo điều này: [http://mvnrepository.com/artifact/org.apache.ws.security/wss4j/1.5.4](http://mvnrepository.com/artifact/org.apache.ws.security/wss4j /1.5.4). –

3

Một cách để tìm hiểu điều này, là cài đặt plugin meclecleclecleclipse cho Eclipse. (Nếu bạn có và đang sử dụng Eclipse, tức là.) Tên không liên quan đến phiên bản; nó hoạt động vui vẻ với ít nhất Maven 2.2.1 và 3.

http://www.eclipse.org/m2e/

Sau đó, mở pom gốc của bạn trong Eclipse, và click vào tab Dependency Hierarchy. Ở phía bên phải sẽ là tất cả các phụ thuộc dự án sẽ tải xuống, và bên trái là những gì phụ thuộc yêu cầu cho những gì. Nếu một phụ thuộc nói (managed from X), điều đó có nghĩa là một sự phụ thuộc khác muốn có một phiên bản khác của sự phụ thuộc này Tuy nhiên, điều này không hoàn hảo. Tôi vẫn còn xem xét một số poms khác để tìm ra sự phụ thuộc mà tôi đang tìm kiếm. Nhưng nó sẽ làm cho cuộc sống dễ dàng hơn, và ít nhất là điểm bạn đi đúng hướng.

+0

Hãy để tôi thử điều đó. Thanks .. –

+0

@KasunBG Vì vậy, nó đã làm việc? – dolmen

+0

Đây là tải trọng bổ sung của công việc. Vì vậy, tôi không thể đến đó để lấy cây phụ thuộc của tôi được liệt kê. Bằng tay thông qua sự phụ thuộc pom để pom có ​​vẻ dễ dàng hơn nếu bạn nghĩ rằng giải pháp có thể được tìm thấy ở vùng nước nông. –

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