He tenido este mismo problema, y escribí una línea en shell para hacerlo.
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]')/*
Lo hice de una sola vez porque quería tener un proyecto de Jenkins para ejecutar esto simplemente cuando lo necesitara, para no tener que iniciar sesión en cosas, etc. Si te permites un script de shell para ello, puedes escribirlo más limpio:
#!/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/*
Debería funcionar, pero no he probado todo ese script. (He probado el primer comando, pero no el script completo). Este enfoque tiene la desventaja de ejecutar primero un comando grande y complicado. Es idempotente, por lo que puede probarlo usted mismo. La eliminación es su propio comando después, y esto le permite probarlo todo y comprobar que hace lo que cree que hace, porque no debe confiar en los comandos de eliminación sin verificación. Sin embargo, es inteligente por una buena razón: es portátil. Respeta su archivo settings.xml. Si está ejecutando este comando y le dice a maven que use un archivo xml específico (el argumento -s o --settings), esto seguirá funcionando. Por lo tanto, no tiene que jugar con asegurarse de que todo sea igual en todas partes.
Es un poco manejable, pero es una forma decente de hacer negocios, en mi opinión.
-U
bandera que actualizará los artefactos?