mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar
Ich benutze den obigen Befehl, um lokales JAR in Maven Local Repo zu installieren. Jetzt habe ich die Abhängigkeit von Maven Repo. Ich möchte dies aus dem lokalen Repo entfernen. Wie reinige ich es?
Antworten:
Es gibt zwar einen Maven-Befehl, den Sie ausführen können, aber es ist einfacher, die Dateien einfach manuell aus dem Repository zu löschen.
So unter Windows
Documents and Settings\your username\.m2
oder$HOME/.m2
Linuxquelle
.m2/repository directory
. Ein Mitarbeiter hat das Verzeichnis .m2 zuvor gelöscht und es verursacht Probleme, da wir in unserem Projekt diesettings.xml
Datei ändern müssen ..m2/repository
Verzeichnisses auch alle Maven-Plugin-Dateien löschen. Während Sie mit dempurge-local-repository
Befehl nur Abhängigkeiten löschen..m2/repository
ist nach der Maven-Gruppen-ID organisiert, sodass Sie einfach das Unterverzeichnis löschen können, das dem Artefakt entspricht, das Sie entfernen möchten.Obwohl das manuelle Löschen von Dateien funktioniert, gibt es eine offizielle Möglichkeit, Abhängigkeiten Ihres Projekts aus Ihrem lokalen (Cache-) Repository zu entfernen und optional aus Remote-Repositorys aufzulösen.
Das Ziel
purge-local-repository
im Standard-Maven-Abhängigkeits-Plugin entfernt die lokal installierten Abhängigkeiten dieses Projekts aus Ihrem Cache. Optional können Sie sie gleichzeitig aus den Remote-Repositorys neu auflösen.Dies sollte als Teil einer Projektphase verwendet werden, da es für die Abhängigkeiten des enthaltenen Projekts gilt. Auch transitive Abhängigkeiten werden standardmäßig (lokal) gelöscht.
Wenn Sie ein einzelnes Artefakt explizit aus dem Cache entfernen möchten, verwenden Sie es
purge-local-repository
mit demmanualInclude
Parameter. Zum Beispiel über die Befehlszeile:Die Dokumentation impliziert, dass dadurch standardmäßig keine transitiven Abhängigkeiten entfernt werden. Wenn Sie mit einem nicht standardmäßigen Cache-Speicherort oder auf mehreren Plattformen ausgeführt werden, sind diese zuverlässiger als das Löschen von Dateien "von Hand".
Die vollständige Dokumentation finden Sie in der Maven-Dependency-Plugin- Spezifikation.
Hinweis : Ältere Versionen des Maven-
dependency
Plugins hatten einmanual-purge-local-repository
Ziel, das jetzt (Version 2.8) durch die Verwendung von impliziert wirdmanualInclude
. Die Dokumentation fürmanualIncludes
(mit einems
) sollte ebenfalls gelesen werden.quelle
.jar
s funktioniert , die nicht von maven central oder einem anderen Repository heruntergeladen wurden. Wenn ich diesen Befehl ausführe, werden alle.jar
automatisch heruntergeladenen s entfernt, aber wenn es zu den.jar
s kommt, die ich manuell installiert habe, wird folgende Fehlermeldung[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
, aber es gibt immer noch einen Fehler aus. Also für.jar
s , die manuell installiert wurden, würde ich empfehlen , manuell zu löschen , anstatt mit dieser Methode, da Maven einige seltsamen Dateien wie erstelltyourjar.jar.lastUpdated
undyourjar.pom.lastUpdated
die Sie möglicherweise ohnehin manuell löschen müssen. Wenn maven jedoch alle Abhängigkeiten automatisch verwaltet, ist dies eine hervorragende Möglichkeit, die Abhängigkeiten zu deinstallieren.Zumindest in der aktuellen Maven-Version müssen Sie den Schalter -DreResolve = false hinzufügen, wenn Sie die Abhängigkeiten aus Ihrem lokalen Repo entfernen möchten, ohne sie erneut herunterzuladen.
Entfernt die Abhängigkeiten, ohne sie erneut herunterzuladen.
quelle
Löschen Sie alle Elemente (jar, pom.xml usw.) in Ihrem lokalen
~/.m2/repository/phonegap/1.1.0/
Verzeichnis, wenn Sie ein Linux-Betriebssystem verwenden.quelle
Ich hatte das gleiche Problem, ging alle oben genannten Vorschläge durch, aber nichts funktionierte. Schließlich habe ich sowohl den Ordner .m2 als auch den Ordner .ivy gelöscht und es hat bei mir funktioniert.
quelle
cd ~/.m2
git init
git commit -am "some comments"
cd /path/to/your/project
mvn install
cd ~/.m2
git reset --hard
quelle