2015-01-06 14 views
5

Lệnh mvn -U buộc tất cả phụ thuộc để cập nhật từ kho lưu trữ từ xa. Có thể ép buộc cập nhật này cho việc lựa chọn cụ thể các phụ thuộc, bằng cách lựa chọn rõ ràng/bởi một số logic?Chỉ cập nhật lực Maven cho phụ thuộc cụ thể (mvn -U cho phụ thuộc đã chọn)

Lý do

Tôi không muốn để buộc kiểm tra tất cả các phụ thuộc chúng ta có bởi vì cách hogiht tốn thời gian nó được. Tất cả những gì tôi cần, là xác minh một vài trong số họ hoặc thậm chí chỉ xác định một phụ thuộc. Vì vậy, giải pháp như vậy là rất mong muốn.

+0

không bằng cách sử dụng tùy chọn -U. Plugin phụ thuộc maven có mục tiêu "xoay vòng": http://maven.apache.org/plugins/maven-dependency-plugin/resolve-mojo.html - có thể sử dụng kết hợp các loại trừ và includeArtifactIds để làm điều này? Tùy chọn còn lại là xóa các tạo phẩm và các tệp meta-data từ kho lưu trữ cục bộ. Điều đó sẽ buộc maven phải giải quyết lại phần tạo tác đó vì không có thêm thông tin. – wemu

+0

Đó là một câu hỏi khác mà tôi không biết câu trả lời. Cố gắng tìm ra cách nó có thể nhưng không tìm ra. Về việc xóa dữ liệu, đó là những gì tôi đang làm bây giờ và phải dừng lại để làm điều đó. Cảm thấy quá "thủ công" đối với tôi. – Stas

+1

Bạn có muốn tự động cập nhật tệp pom của mình bằng cách nào đó để chọn một phiên bản mới nhất của phụ thuộc không? Chính xác? – khmarbaise

Trả lời

3

Có hai plugin maven có thể trợ giúp bạn tại đây.

Đầu tiên, phụ thuộc, sẽ chỉ đơn giản là tải về phiên bản nhất định của một phụ thuộc: mvn dependency:get -Dartifact=groupId:artifactId:version

Thứ hai, phiên bản, cung cấp một số hành vi mà bạn cũng có thể tìm thấy hữu ích.

Bằng cách chạy mvn versions:use-latest-releases -Dincludes=groupId:artifactId pom dự án của bạn sẽ được cập nhật với phiên bản phát hành mới nhất của sự phụ thuộc được chỉ định bởi cờ '-Dincludes'. Sau đó, bạn có thể chạy lệnh đầu tiên để tải xuống phiên bản hiện được tham chiếu bởi pom của bạn.

Cả hai hành vi này có thể được tùy chỉnh nhiều và tự động để thực hiện một số điều khá tuyệt vời. Để có được sự giúp đỡ thêm về một mục tiêu plugin, chạy: mvn plugin:help -Ddetail=true -Dgoal=goal

Ví dụ: mvn versions:help -Ddetail=true -Dgoal=use-latest-releases

Để biết thêm thông tin: versions, dependency, và plugins

+1

Đẹp, trông giống như 'phụ thuộc: get -Dartifact = groupId: artifactId: phiên bản' là chính xác những gì tôi cần. – Stas

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