Maven: Perintah untuk memperbarui repositori setelah menambahkan ketergantungan pada POM

256

Saya telah menambahkan ketergantungan baru ke POM saya.

Apakah ada perintah sederhana yang dapat saya jalankan untuk mengunduh ketergantungan ini ke repositori saya?

JJ180
sumber
Bagi mereka yang mencari cara melakukan ini dalam proyek Spring Boot: gunakan mvnwuntuk memanggil lapisan pembungkus. Perintah pada halaman ini berfungsi dengannya.
G_V

Jawaban:

178

mvn install (atau mvn package ) akan selalu berhasil.

Anda dapat menggunakan mvn compileuntuk mengunduh dependensi waktu kompilasi atau mvn testuntuk waktu kompilasi dan menguji dependensi tetapi saya lebih suka sesuatu yang selalu berfungsi.

Aaron Digulla
sumber
2
Terima kasih, saya juga menemukan bahwa menambahkannya ke pom di STS akan secara otomatis mengunduhnya untuk Anda.
JJ180
15
@Andrew Spencer menjawab lebih akurat - hanya mvn dependency:xxxberurusan dengan dependensi dan tidak melakukan hal-hal tambahan - dan apa pertanyaannya.
botchniaque
Kadang-kadang, 'paket mvn' mungkin tidak memperbarui dependensi. Telah terjadi pada saya lebih dari sekali. Seseorang perlu menjalankan 'mvn dependency: resolve' dalam kasus seperti itu
Binita Bharati
1
@BinitaBharati, Anda bisa menambahkan -U ke baris perintah Maven untuk memaksa unduhan ketergantungan. Ini berguna jika Maven tidak mengunduh ketergantungan yang diperbarui karena batas waktu cache.
BamaPookie
1
@Kishan Ajukan pertanyaan baru. Perlihatkan tata letak proyek Anda (terutama di mana importterjadi) dan apakah Anda menggunakan multi-modul build.
Aaron Digulla
611

Jika Anda hanya ingin mengunduh dependensi tanpa melakukan hal lain, maka itu adalah:

mvn dependency:resolve

Atau untuk mengunduh satu ketergantungan:

mvn dependency:get -Dartifact=groupId:artifactId:version

Jika Anda perlu mengunduh dari repositori tertentu, Anda dapat menentukannya dengan -DrepoUrl=...

Andrew Spencer
sumber
2
Saya mendapatkan kesalahan ini ketika saya menjalankan perintah itu: [ERROR] Gagal menjalankan goal org.apache.maven.plugins: maven-dependency-plugin: 2.1: get (default-cli) pada proyek standalone-pom: Parameter 'repositoryUrl' untuk goal org.apache.maven.plugins: maven-dependency-plugin: 2.1: get ada yang hilang atau tidak valid -> [Help 1]. Menentukan -DrepositoryUrl = ... tidak berfungsi.
Chry Cheng
1
Saya pikir saya sudah menemukan solusinya. Parameter harus "repoUrl" dan bukan "repositoryUrl".
Chry Cheng
Tidak menyelesaikan masalah bagi saya: saya jalankan mvn package -osetelah - saya mendapatkan kesalahan bahwa plugin tidak dapat diunduh. Menjalankan mvn dependency:resolve-pluginsjuga tidak sepenuhnya menyelesaikan masalah.
Innokenty
URL repositori Anda mungkin hilang / salah. Bagaimanapun, saya tidak berpikir jawaban ini adalah jawaban untuk masalah yang Anda hadapi. Jawaban ini mencakup kasus ketika Maven dapat menemukan semua artefak yang diperlukan dalam repositori yang dikonfigurasi.
Andrew Spencer
Saya tidak peduli apakah Anda seorang yang beriman atau tidak, seorang Kristen atau bukan ... Tuhan memberkati Anda jawaban sederhana yang mengagumkan ini.
Salathiel Genèse
12

Saya tahu ini adalah pertanyaan lama sekarang, tetapi untuk pengguna yang menggunakan Mavenplugin dengan di Eclipse bawah Windows, Anda memiliki dua opsi:

  1. Jika Anda menginstal Maven sebagai aplikasi mandiri:

    Anda dapat menggunakan perintah berikut di CMDbawah jalur proyek Anda:

    mvn eclipse:eclipse

    Ini akan memperbarui repositori Anda dengan semua stoples yang hilang, sesuai dengan dependensi Anda di pom.xmlfile Anda .

  2. Jika Anda belum menginstal Maven sebagai aplikasi mandiri, Anda dapat mengikuti langkah-langkah ini di gerhana Anda:

    Klik kanan pada project-> Run As-> Run configurations.

    Kemudian pilih mavenBuild.

    Kemudian klik newtombol untuk membuat konfigurasi dari jenis yang dipilih. Klik Browse ruang kerja kemudian pilih proyek Anda dan dalam menentukan tujuaneclipse:eclipse

Anda bisa merujuk ke cara menjalankan perintah mvn eclipse: eclipse untuk detail lebih lanjut.

cнŝdk
sumber
3
Menjalankan gerhana: gerhana setelah ketergantungan: tekad membantu saya melihat guci yang diunduh dalam gerhana, terima kasih!
Anatoly Yakimchuk
2
Sementara jawaban ini akan membantu orang-orang miskin yang terjebak dengan Eclipse, saya sangat menyarankan siapa pun yang menggunakan Eclipse menemukan alternatif yang lebih baik. Terutama jika Anda akan menggunakan Maven. Netbeans dan IntelliJ adalah tahun cahaya ke depan.
64BitBob
@ 64BitBob Dengan asumsi bahwa Netbeans dan IntelliJ lebih baik daripada gerhana, kita harus selalu memberikan solusi bagi mereka yang menggunakannya. :)
cнŝdk
Saya melihat bahwa plugin tidak tersedia lagi di pasar tapi ya itu berfungsi di Eclipse 2020 tanpa mengunduh apa pun. Saya ingin tahu apakah mvn gerhana: gerhana adalah perintah yang dikirim oleh gerhana sendiri ketika kita klik kanan-> Maven-> Perbarui Proyek ...
Paolo
@ Paolo Menurut pendapat saya mereka secara otomatis menambahkan plugin di versi baru Eclipse, dan ya saya pikir itu perintah yang sama di belakang opsi "Perbarui proyek".
cнŝdk
1

Perhatikan cakupan dependensi Anda. Saya mengalami masalah ketika saya meminta kompilasi bersih melalui Intellij, pom akan diunduh, tetapi toples tidak mau. Ada file xxx.jar.lastUpdated dibuat. Kemudian menyadari bahwa cakupan ketergantungan adalah tes, tetapi saya memicu kompilasi. Saya menghapus repo, dan memicu tes mvn, dan masalah terselesaikan.

NullPointer
sumber
-4

Klik kanan pada proyek. Pergi ke Maven -> Perbarui Proyek.

Ketergantungan akan diinstal secara otomatis.

Ashish Pandey
sumber
Ini adalah bagaimana melakukannya di Eclipse.
user1364368
kadang-kadang, dan akhirnya, tidak jauh ini berfungsi, beberapa perintah seperti paket mvn, instal, ketergantungan: tekad dapat menyelesaikan masalah Anda
Sham Fiorin