Ich hatte das gleiche Problem und habe dafür einen Einzeiler in Shell geschrieben.
rm -rf $(mvn help:evaluate -Dexpression=settings.localRepository\
-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN -B \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn | grep -vF '[INFO]')/*
Ich habe es als Einzeiler gemacht, weil ich ein Jenkins-Projekt haben wollte, um es einfach auszuführen, wann immer ich es brauchte, damit ich mich nicht bei Sachen usw. anmelden musste. Wenn Sie sich ein Shell-Skript dafür erlauben, Sie können es sauberer schreiben:
#!/usr/bin/env bash
REPOSITORY=$(mvn help:evaluate \
-Dexpression=settings.localRepository \
-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN \
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn \
--batch-mode \
| grep -vF '[INFO]')
rm -rf $REPOSITORY/*
Sollte funktionieren, aber ich habe nicht das ganze Skript getestet. (Ich habe den ersten Befehl getestet, aber nicht das gesamte Skript.) Dieser Ansatz hat den Nachteil, dass zuerst ein großer komplizierter Befehl ausgeführt wird. Es ist idempotent, also können Sie es selbst testen. Das Löschen ist danach ein eigener Befehl. Auf diese Weise können Sie alles ausprobieren und überprüfen, ob es das tut, was Sie denken, da Sie Löschbefehlen nicht ohne Überprüfung vertrauen sollten. Es ist jedoch aus einem guten Grund klug: Es ist tragbar. Es respektiert Ihre settings.xml-Datei. Wenn Sie diesen Befehl ausführen und maven anweisen, eine bestimmte XML-Datei (das Argument -s oder --settings) zu verwenden, funktioniert dies weiterhin. Sie müssen also nicht herumspielen, um sicherzustellen, dass überall alles gleich ist.
Es ist ein bisschen umständlich, aber es ist eine anständige Art, Geschäfte zu machen, IMO.
-U
Flagge ausprobiert, mit der Artefakte aktualisiert werden?