Maven memeriksa dependensi yang diperbarui dalam repositori


167

Apakah ada plugin Maven yang memungkinkan Anda memeriksa apakah ada versi dependensi yang lebih baru yang tersedia di repositori?

Katakanlah, Anda menggunakan dependensi X dengan versi 1.2. Sekarang versi baru X dirilis dengan versi 1.3. Saya ingin tahu, berdasarkan dependensi yang digunakan dalam proyek saya, dependensi mana yang memiliki versi yang lebih baru.


Jawaban:


284

The Maven Versi Plugin dan yang display-dependency-updatesmojo adalah apa yang Anda cari:

mvn versions:display-dependency-updates

Berikut ini hasilnya:

[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] ------------------------------------------------------------------------

Terima kasih Pascal. Itu yang saya cari. Meskipun, untuk Spring versi 3.0.1.RELEASE melaporkan versi 2.5.6 yang lebih baru. Mungkin ada bug di plugin?
froethen

1
@ Feliks Sama-sama. Mengenai artefak Spring, saya bertanya-tanya apakah masalahnya bukan karena fakta bahwa Spring tidak mengikuti "aturan" : versi harus 3.0.1-RELEASE, bukan 3.0.1.RELEASE. Dengan kata lain, saya tidak yakin itu bug (maksud saya, tentu saja, saya berharap plugin melaporkan 3.0.1 .RELEASE juga lebih baru, tapi saya tidak yakin ini akan diterima sebagai bug).
Pascal Thivent

1
Memeriksa pembaruan maven-plugin-apijuga dapat digunakan untuk memeriksa versi Maven yang lebih baru itu sendiri karena versi baru ketergantungan ini dirilis untuk setiap rilis Maven.
Tunaki

Senang mendengarnya. Namun, adakah cara untuk membuat laporan ini ketika kita membangun sebuah proyek alih-alih harus mengetikkan perintah itu dengan jelas?
Frederic

33

Jika Anda ingin menerima pemberitahuan email ketika versi artefak yang lebih baru tersedia di Maven Central, Anda dapat membuat akun di artefak-pendengar dan memilih artefak yang ingin Anda ikuti.
Anda dapat mencari artefak secara manual atau mengunggah pom.xml secara langsung.

Anda akan menerima pemberitahuan seperti ini secara berkala (tersedia dalam bahasa Inggris dan Perancis untuk saat ini):

Pendengar artefak Maven


22

The VersionEye Maven Plugin melakukan hal yang sama: versioneye_maven_plugin .

VersionEye juga dapat memberi tahu Anda tentang versi baru di Maven Repositori. Ini adalah alat agnostik bahasa dan di samping Java itu mendukung 7 bahasa lainnya. Selain fitur ikuti / beri tahu yang sederhana, ia juga dapat secara langsung memonitor repositori GitHub dan BitBucket dan memberi tahu dependensi Anda yang sudah ketinggalan zaman dalam proyek Anda.

masukkan deskripsi gambar di sini

Ada juga API JSON SISA , untuk integrasi alat.

Ngomong-ngomong, aku cowok yang memulai proyek ini. Beri tahu saya jika Anda memiliki pertanyaan.


1
Proyek ditutup :(
Alireza Fattahi

3

Anda dapat menggunakan Plugin Version Maven [1] untuk menghasilkan laporan di situs Maven Anda untuk mendapatkan daftar kemungkinan pembaruan. Sehubungan dengan ketidakteraturan Spring, tampaknya menggunakan sistem versi Merkuri [2]. Saat mengkonfigurasi plugin Versi, Anda dapat menambahkan aturan khusus untuk hal-hal Spring:

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

2
dapatkah Anda memberikan contoh?
Zarathustra

1

Dalam proyek-proyek dengan jumlah ketergantungan yang besar, Anda terkadang menyimpan versi Anda di bagian properti.

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

Jika Anda hanya tertarik dengan pembaruan untuk versi tersebut, Anda dapat menggunakan perintah berikut

mvn versions:display-property-updates

Ini memberikan tampilan yang lebih kental dan hanya mengembalikan versi yang Anda perlu perbarui di bagian properti.


Jawaban yang diremehkan.
ROMANIA_engineer
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.