mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar
Saya menggunakan perintah di atas untuk menginstal jar lokal ke repo lokal maven. Sekarang saya sudah mendapatkan ketergantungan dari maven repo. Saya ingin menghapus ini dari repo lokal. Bagaimana cara membersihkannya?
Jawaban:
Meskipun ada perintah maven yang dapat Anda jalankan untuk melakukan ini, lebih mudah untuk menghapus file secara manual dari repositori.
Seperti ini di windows
Documents and Settings\your username\.m2
atau$HOME/.m2
di Linuxsumber
.m2/repository directory
. Seorang rekan kerja telah menghapus direktori .m2 sebelumnya dan ini menyebabkan masalah karena pada proyek kami, kami harus mengubahsettings.xml
file..m2/repository
direktori, Anda juga akan menghapus semua file plugin maven. Sedangkan dengan menggunakanpurge-local-repository
perintah Anda hanya menghapus dependensi..m2/repository
diatur oleh ID grup Maven, jadi Anda cukup menghapus subdirektori yang sesuai dengan artefak yang ingin Anda hapus.Meskipun menghapus file secara manual berfungsi, ada cara resmi untuk menghapus dependensi proyek Anda dari repositori (cache) lokal Anda dan secara opsional menyelesaikannya kembali dari repositori jarak jauh.
Tujuannya
purge-local-repository
, pada plugin dependensi Maven standar, akan menghapus dependensi yang diinstal secara lokal dari proyek ini dari cache Anda. Secara opsional, Anda dapat menyelesaikannya kembali dari repositori jarak jauh pada saat yang sama.Ini harus digunakan sebagai bagian dari fase proyek karena ini berlaku untuk dependensi untuk proyek yang memuat. Dependensi transitif juga akan dihapus (secara lokal), secara default.
Jika Anda ingin secara eksplisit menghapus satu artefak dari cache, gunakan
purge-local-repository
denganmanualInclude
parameter. Misalnya, dari baris perintah:Dokumentasi menyiratkan bahwa ini tidak menghapus dependensi transitif secara default. Jika Anda menjalankan dengan lokasi cache non-standar, atau pada beberapa platform, ini lebih dapat diandalkan daripada menghapus file "dengan tangan".
Dokumentasi lengkap ada di spesifikasi maven-dependency-plugin .
Catatan : Versi lama dari
dependency
plugin maven memilikimanual-purge-local-repository
tujuan, yang sekarang (versi 2.8) tersirat oleh penggunaanmanualInclude
. Dokumentasi untukmanualIncludes
(dengans
) harus dibaca juga.sumber
.jar
s yang tidak diunduh dari maven central atau beberapa repositori lain. Ketika saya menjalankan perintah ini, ia menghilangkan semua.jar
s yang diunduh secara otomatis, tetapi ketika sampai ke.jar
s yang saya instal secara manual, ia mengeluarkan pesan kesalahan ini:[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:purge-local-repository (default-cli) on project alloy-generator: Failed to refresh project dependencies for: myartifact: required artifacts missing: [ERROR] manually-downloaded-and-installed.jar ...
.jar
, tetapi masih menghasilkan kesalahan. Jadi untuk.jar
s yang telah diinstal secara manual, saya akan merekomendasikan menghapus secara manual daripada menggunakan metode ini, karena maven membuat beberapa file aneh sepertiyourjar.jar.lastUpdated
danyourjar.pom.lastUpdated
yang mungkin perlu Anda hapus secara manual. Tetapi jika maven mengatur semua dependensi secara otomatis, ini adalah cara terbaik untuk menghapus dependensi.Setidaknya pada versi maven saat ini Anda perlu menambahkan switch -DreResolve = false jika Anda ingin menghapus dependensi dari repo lokal Anda tanpa mengunduhnya kembali.
menghapus ketergantungan tanpa mengunduhnya lagi.
sumber
Hapus semua hal (jar, pom.xml, dll) di bawah
~/.m2/repository/phonegap/1.1.0/
direktori lokal Anda jika Anda menggunakan OS linux.sumber
Saya menghadapi masalah yang sama, mengikuti semua saran di atas, tetapi tidak ada yang berhasil. Akhirnya saya menghapus folder .m2 dan .ivy dan itu berhasil untuk saya.
sumber
cd ~/.m2
git init
git commit -am "some comments"
cd /path/to/your/project
mvn install
cd ~/.m2
git reset --hard
sumber