Maven kiểm tra các phụ thuộc được cập nhật trong kho lưu trữ


167

Có plugin Maven nào cho phép bạn kiểm tra xem có phiên bản phụ thuộc mới hơn có sẵn trong kho không?

Giả sử, bạn đang sử dụng phụ thuộc X với phiên bản 1.2. Bây giờ một phiên bản X mới được phát hành với phiên bản 1.3. Tôi muốn biết, dựa trên các phụ thuộc được sử dụng trong dự án của tôi, các phụ thuộc này có sẵn các phiên bản mới hơn.


Câu trả lời:


284

Các phiên bản Maven cắm và nó display-dependency-updatesmojo là những gì bạn đang tìm kiếm:

mvn versions:display-dependency-updates

Đây là những gì đầu ra trông như:

[INFO] ------------------------------------------------------------------------
[INFO] Building Build Helper Maven Plugin
[INFO]    task-segment: [versions:display-dependency-updates]
[INFO] ------------------------------------------------------------------------
[INFO] [versions:display-dependency-updates]
[INFO]
[INFO] The following dependency updates are available:
[INFO]   org.apache.maven:maven-artifact ........................ 2.0 -> 2.0.9
[INFO]   org.apache.maven:maven-plugin-api ...................... 2.0 -> 2.0.9
[INFO]   org.apache.maven:maven-project ....................... 2.0.2 -> 2.0.9
[INFO]   org.codehaus.plexus:plexus-utils ....................... 1.1 -> 1.5.6
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17 seconds
[INFO] Finished at: Fri Aug 15 10:46:03 IST 2008
[INFO] Final Memory: 10M/167M
[INFO] ------------------------------------------------------------------------

Cảm ơn Pascal. Đó là những gì tôi đang tìm kiếm. Mặc dù, đối với phiên bản Spring 3.0.1.RELEASE, nó báo cáo phiên bản mới hơn 2.5.6. Có lẽ một lỗi trong plugin?
froethen

1
@Felix Bạn được chào đón. Về tạo tác của Spring, tôi tự hỏi liệu vấn đề không phải do thực tế là Spring không tuân theo "quy tắc" : phiên bản nên là 3.0.1-ĐÁNG TIN CẬY, không phải 3.0.1.RELEASE. Nói cách khác, tôi không chắc đó là một lỗi (ý tôi là, chắc chắn, tôi mong đợi plugin sẽ báo cáo 3.0.1.RELEASE vì mới hơn, nhưng tôi không chắc chắn điều này sẽ được chấp nhận là một lỗi).
Pascal Thivent

1
Kiểm tra các bản cập nhật maven-plugin-apicũng có thể được sử dụng để kiểm tra các phiên bản mới hơn của Maven vì phiên bản mới của phụ thuộc này được phát hành cho mỗi bản phát hành Maven.
Tunaki

Đó là điều tốt để biết. Tuy nhiên, có cách nào để có báo cáo này khi chúng tôi xây dựng một dự án thay vì phải gõ lệnh đó một cách rõ ràng không?
Frederic

33

Nếu bạn muốn nhận thông báo qua email khi có các phiên bản tạo tác mới hơn trên Maven Central, bạn có thể tạo một tài khoản trên trình giả tạo và chọn loại tạo tác nào bạn muốn theo dõi.
Bạn có thể tìm kiếm thủ công các tạo phẩm hoặc tải trực tiếp tệp pom.xml của mình.

Bạn sẽ nhận được thông báo định kỳ như thế này (hiện có sẵn bằng tiếng Anh và tiếng Pháp):

Người nghe tạo tác Maven


22

Các VersionEye Maven Plugin đang làm giống nhau: versioneye_maven_plugin .

VersionEye cũng có thể thông báo cho bạn về các phiên bản mới trên Kho lưu trữ Maven. Nó là một công cụ bất khả tri ngôn ngữ và bên cạnh Java, nó hỗ trợ 7 ngôn ngữ khác. Bên cạnh tính năng theo dõi / thông báo đơn giản, nó cũng có thể trực tiếp theo dõi kho GitHub và BitBucket và thông báo cho bạn về các phụ thuộc lỗi thời trong các dự án của bạn.

nhập mô tả hình ảnh ở đây

Ngoài ra còn có API REST JSON , để tích hợp công cụ.

Nhân tiện, tôi là anh chàng đã bắt đầu dự án này. Hãy cho tôi biết nếu bạn có thắc mắc.


1
Dự án đã kết thúc :(
Alireza Fattahi

3

Bạn có thể sử dụng Plugin Maven Phiên bản [1] để tạo báo cáo trong trang Maven của mình để nhận danh sách các bản cập nhật có thể có. Liên quan đến sự bất thường của Spring, dường như sử dụng hệ thống phiên bản Mercury [2]. Khi định cấu hình plugin Phiên bản, bạn có thể thêm một quy tắc đặc biệt cho nội dung Spring:

  1. http://mojo.codehaus.org/versions-maven-plugin/
  2. http://docs.codehaus.org/display/MAVEN/Mercury+Version+Ranges

2
bạn có thể cung cấp một ví dụ?
Zarathustra

1

Trong các dự án có số lượng phụ thuộc rất lớn, đôi khi bạn giữ các phiên bản của mình trong phần thuộc tính.

    <properties>
        <assertj.version>3.15.0</assertj.version>
        <aws-sdk.version>1.11.763</aws-sdk.version>
        <cxf.version>3.3.6</cxf.version>

Trong trường hợp bạn chỉ quan tâm đến việc cập nhật các phiên bản đó, bạn có thể sử dụng lệnh sau

mvn versions:display-property-updates

Điều này mang lại một cái nhìn cô đọng hơn và chỉ trả về các phiên bản bạn cần cập nhật trong phần thuộc tính.


Câu trả lời không nản lòng.
ROMANIA_engineer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.