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.

mondar-mandir
sumber
Pertanyaan terkait: stackoverflow.com/questions/431332 .
Sergey Brunov

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] ------------------------------------------------------------------------
Thivent Pascal
sumber
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

rd3n
sumber
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.

Robert Reiz
sumber
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
jrh3k5
sumber
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.

daging kambing
sumber
Jawaban yang diremehkan.
ROMANIA_engineer