İnstall: install-file? İle eklenen yerel maven deposundan jar dosyası nasıl kaldırılır?


122
mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar

Yerel jar'i maven yerel deposuna yüklemek için yukarıdaki komutu kullanıyorum. Şimdi bağımlılığı maven repo'dan aldım. Bunu yerel depodan çıkarmak istiyorum. Nasıl temizlenir?


Yanıtlar:


107

Bunu yapmak için uygulayabileceğiniz bir maven komutu varken, dosyaları depodan manuel olarak silmek daha kolaydır.

Windows Documents and Settings\your username\.m2veya $HOME/.m2Linux'ta bunun gibi


10
Yalnızca .m2/repository directory. Bir iş arkadaşımız .m2 dizinini daha önce sildi ve bu sorunlara neden oluyor çünkü projemizde settings.xmldosyayı değiştirmemiz gerekiyor .
Tiris

7
.m2/repositoryDizini sildikten sonra tüm maven eklenti dosyalarını da sileceğinizi unutmayın . Oysa purge-local-repositorykomutu kullanarak yalnızca bağımlılıkları siliyorsunuz.
collinhaines

3
Altındaki dizin yapısı .m2/repositoryMaven grup kimliğine göre düzenlenmiştir, böylece kaldırmak istediğiniz yapıya karşılık gelen alt dizini silebilirsiniz.
Kevin Krumwiede

124

Dosyaları manuel olarak silmek işe yarasa da, projenizin bağımlılıklarını yerel (önbellek) deponuzdan kaldırmanın ve isteğe bağlı olarak uzak depolardan yeniden çözmenin resmi bir yolu vardır .

purge-local-repositoryStandart Maven bağımlılık eklentisindeki amaç , bu projenin yerel olarak yüklenen bağımlılıklarını önbelleğinizden kaldıracaktır . İsteğe bağlı olarak, bunları aynı anda uzak depolardan yeniden çözebilirsiniz.

Bu, bir proje aşamasının parçası olarak kullanılmalıdır çünkü kapsayıcı proje için bağımlılıklar için geçerlidir. Ayrıca geçişli bağımlılıklar da varsayılan olarak (yerel olarak) temizlenecektir.

Önbellekten tek bir yapıyı açıkça kaldırmak istiyorsanız purge-local-repository, manualIncludeparametreyle birlikte kullanın . Örneğin, komut satırından:

mvn dependency:purge-local-repository -DmanualInclude="groupId:artifactId, ..."

Belgeler, bunun varsayılan olarak geçişli bağımlılıkları kaldırmadığını ima eder. Standart olmayan bir önbellek konumuyla veya birden çok platformda çalıştırıyorsanız, bunlar dosyaları "elle" silmekten daha güvenilirdir.

Tam dokümantasyon maven-bağımlılık-eklenti spesifikasyonundadır.

Not : maven dependencyeklentisinin eski sürümlerinin bir manual-purge-local-repositoryhedefi vardı , bu artık (sürüm 2.8) manualInclude. Belgelerine manualIncludes(bir ile s) hem de okunmalıdır.


Bunun .jarmaven central veya başka bir depodan indirilmemiş olan dosyalar için çalıştığına inanmıyorum . Bu komutu çalıştırdığımda .jarotomatik olarak indirilen tüm e.jar[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 ...
postalardan kurtuluyor

3
Aslında, kontrol ettikten sonra, onu kaldırdığını fark ettim .jar, ancak yine de bir hata veriyor. Bu nedenle, .jarmanuel olarak yüklenen dosyalar için, bu yöntemi kullanmak yerine manuel olarak silmenizi tavsiye ederim, çünkü maven, buna benzer bazı garip dosyalar yaratır yourjar.jar.lastUpdatedve yourjar.pom.lastUpdatedyine de manuel olarak silmeniz gerekebilir. Ancak maven tüm bağımlılıkları otomatik olarak yönettiyse, bu bağımlılıkları kaldırmanın harika bir yoludur.
stiemannkj1

Bu yaklaşım aynı zamanda komutu çalıştırmak için bir maven projesi gerektirir. Bir Gradle derlemesi bağlamında OP'nin belirttiği yükleme komutunu çalıştırdıysanız, bu işe yaramıyor gibi görünüyor.
jdonmoyer

19

En azından mevcut maven sürümünde, bağımlılıkları yeniden indirmeden yerel deponuzdan kaldırmak istiyorsanız, -DreResolve = false anahtarını eklemeniz gerekir.

mvn dependency:purge-local-repository -DreResolve=false

tekrar indirmeden bağımlılıkları kaldırır.


lütfen bir göz atabilir misin: stackoverflow.com/questions/58937713/…
gstackoverflow

12

~/.m2/repository/phonegap/1.1.0/Linux işletim sistemi kullanıyorsanız yerel dizininiz altındaki her şeyi (jar, pom.xml, vb.) Silin .


Kavanozu bu şekilde çıkardığımda, kavanozu eski klasörden "yeniden indiriyor". Kaldırılması gereken referanslar da olabilir.
Antonio Sesto

0

Aynı sorunla karşılaştım, yukarıdaki tüm önerileri uyguladım, ancak hiçbir şey işe yaramadı. Sonunda hem .m2 hem de .ivy klasörünü sildim ve benim için çalıştı.


-6
  1. cd ~/.m2
  2. git init
  3. git commit -am "some comments"
  4. cd /path/to/your/project
  5. mvn install
  6. cd ~/.m2
  7. git reset --hard

5
Bu cevap sorunu çözebilir veya çözmeyebilir, ancak cevabınıza bir açıklama eklemeye ne dersiniz, bu sadece OP'nin ona ne göstermeye çalıştığınızı anlamasına yardımcı olabilir.
Gerhard

2
Bu yanıt sorunla ilgili değildir: git deposunun kurulumunu .m2 klasöründe gösterir ve git deposu olarak sıfırlarsınız.
lquitadamo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.