mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar
Używam powyższego polecenia, aby zainstalować lokalny jar w lokalnym repozytorium maven. Teraz mam zależność od repozytorium Maven. Chcę to usunąć z lokalnego repozytorium. Jak to wyczyścić?
Odpowiedzi:
Chociaż istnieje polecenie maven, które możesz wykonać, aby to zrobić, łatwiej jest po prostu ręcznie usunąć pliki z repozytorium.
Tak jak w systemie Windows
Documents and Settings\your username\.m2
lub$HOME/.m2
Linuxźródło
.m2/repository directory
. Współpracownik usunął wcześniej katalog .m2 i powoduje to problemy, ponieważ w naszym projekcie musimy zmodyfikowaćsettings.xml
plik..m2/repository
katalog, usuniesz również wszystkie pliki wtyczek maven. Podczas gdy za pomocąpurge-local-repository
polecenia usuwasz tylko zależności..m2/repository
jest zorganizowana według identyfikatora grupy Maven, więc możesz po prostu usunąć podkatalog odpowiadający artefaktowi, który chcesz usunąć.Chociaż ręczne usuwanie plików działa, istnieje oficjalny sposób usuwania zależności projektu z lokalnego (pamięci podręcznej) repozytorium i opcjonalnie ponownego rozwiązywania ich ze zdalnych repozytoriów.
Cel
purge-local-repository
, w standardowej wtyczce zależności Maven, usunie lokalnie zainstalowane zależności tego projektu z pamięci podręcznej. Opcjonalnie możesz w tym samym czasie ponownie rozwiązać je ze zdalnych repozytoriów.Powinno to być używane jako część fazy projektu, ponieważ dotyczy zależności dla projektu zawierającego. Domyślnie wyczyszczone zostaną również zależności przechodnie (lokalnie).
Jeśli chcesz jawnie usunąć pojedynczy artefakt z pamięci podręcznej, użyj
purge-local-repository
zmanualInclude
parametrem. Na przykład z wiersza poleceń:Dokumentacja sugeruje, że domyślnie nie usuwa to zależności przechodnich. Jeśli korzystasz z niestandardowej lokalizacji pamięci podręcznej lub na wielu platformach, są one bardziej niezawodne niż usuwanie plików „ręcznie”.
Pełna dokumentacja znajduje się w specyfikacji wtyczki maven-dependency-plugin .
Uwaga : Starsze wersje
dependency
wtyczki maven miałymanual-purge-local-repository
cel, który obecnie (wersja 2.8) jest implikowany przez użyciemanualInclude
. Należy również przeczytać dokumentację dlamanualIncludes
(zs
).źródło
.jar
działało w przypadku plików, które nie zostały pobrane z centrali Maven lub innego repozytorium. Po uruchomieniu tego polecenia pozbywa się wszystkich.jar
plików, które zostały automatycznie pobrane, ale kiedy dotrze do plików,.jar
które zainstalowałem ręcznie, wyświetla ten komunikat o błędzie:[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
, ale nadal wyświetla błąd. Więc w przypadku.jar
plików, które zostały zainstalowane ręcznie, zalecałbym ręczne usuwanie zamiast korzystania z tej metody, ponieważ maven tworzy dziwne pliki, takie jakyourjar.jar.lastUpdated
i,yourjar.pom.lastUpdated
które i tak mogą wymagać ręcznego usunięcia. Ale jeśli maven zarządzał wszystkimi zależnościami automatycznie, jest to świetny sposób na odinstalowanie zależności.Przynajmniej w obecnej wersji mavena musisz dodać przełącznik -DreResolve = false, jeśli zamierzasz usunąć zależności z lokalnego repozytorium bez ich ponownego pobierania.
usuwa zależności bez ich ponownego pobierania.
źródło
Usuń wszystko (jar, pom.xml, itp.) Z
~/.m2/repository/phonegap/1.1.0/
katalogu lokalnego, jeśli używasz systemu operacyjnego Linux.źródło
Napotkałem ten sam problem, przeszedłem przez wszystkie powyższe sugestie, ale nic nie działało. W końcu usunąłem oba foldery .m2 i .ivy i zadziałało.
źródło
cd ~/.m2
git init
git commit -am "some comments"
cd /path/to/your/project
mvn install
cd ~/.m2
git reset --hard
źródło