2009-08-13 29 views
5

Tôi đã cố gắng sử dụng Maven để xây dựng một dự án. Dự án xây dựng tốt trên một vài máy tính tôi đã thử nhưng trên một máy tính, tôi đang gặp một vấn đề ngẫu nhiên.Không biết Phụ thuộc Sắp tới trong Maven Build

Về cơ bản, maven đang tìm kiếm một phụ thuộc không được bao gồm trong tệp pom.xml hoặc trong tệp settings.xml.

Tôi đã thử phụ thuộc mvn: purge-local-repository nhưng vẫn không có kết quả; Tôi vẫn còn bị mắc kẹt tại mvn tìm kiếm một sự phụ thuộc Tôi không có ý tưởng mà nó tìm kiếm từ.

Trả lời

12

Nếu bạn chạy phụ thuộc mvn: cây trên dự án của bạn, bạn sẽ thấy nơi phụ thuộc không mong muốn được giới thiệu, sau đó bạn có thể loại trừ phụ thuộc.

Đây là một ví dụ về kết quả:

[INFO] [dependency:tree] 
[INFO] org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT 
[INFO] \- org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8:compile 
[INFO] \- org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile 
[INFO]  \- velocity:velocity:jar:1.4:compile 

Để loại trừ sự phụ thuộc, bạn muốn làm điều gì đó như thế này:

<dependency> 
    <groupId>sample.ProjectA</groupId> 
    <artifactId>Project-A</artifactId> 
    <version>1.0</version> 
    <exclusions> 
    <exclusion> <!-- declare the exclusion here --> 
     <groupId>sample.ProjectB</groupId> 
     <artifactId>Project-B</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

Để biết thêm chi tiết về các plugin phụ thuộc thấy documentation.

Để biết thêm chi tiết về loại trừ, hãy xem guide.

Cập nhật: Bạn cũng có thể sử dụng plugin m2eclipse để tạo cây đồ họa của phụ thuộc hoặc dưới dạng biểu đồ. dependency tree screenshot http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/eclipse_pom-editor-depend-tree-locate.png dependency graph screenshot http://www.sonatype.com/books/m2eclipse-book/reference/figs/web/eclipse_pom-editor-graph.png

0

Maven phụ thuộc có thể có phụ thuộc bắc cầu (phụ thuộc phụ thuộc), vì vậy ngay cả nếu có điều gì không được khai báo rõ ràng trong POM, Maven có thể vẫn cần phải đi tìm nó.

Chạy phụ thuộc mvn: cây sẽ giúp bạn chẩn đoán sự cố, như Người bán mô tả; nó cũng có thể giúp bạn chạy nó trên các máy khác mà bạn không gặp vấn đề và so sánh đầu ra.

purge-local-repository không thực sự giúp bạn nhiều về vấn đề này; tất cả những gì làm là loại bỏ các hiện vật từ repo địa phương của bạn trong trường hợp một trong số chúng bị hỏng. Nếu maven đang cố gắng để có được một sự phụ thuộc mà không phải là trong repo địa phương, nó sẽ không thực sự giúp đỡ nhiều vấn đề.

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