J'ai eu le même problème, et j'ai écrit une ligne unique en shell pour le faire.
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]')/*
Je l'ai fait en une seule ligne parce que je voulais avoir un projet Jenkins pour simplement exécuter ceci quand j'en avais besoin, ainsi je n'aurais pas à me connecter à des trucs, etc. Si vous vous autorisez un shell-script pour cela, vous pouvez l'écrire plus proprement :
#!/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/*
Cela devrait fonctionner, mais je n'ai pas testé tout ce script. (J'ai testé la première commande, mais pas l'ensemble du script.) Cette approche a l'inconvénient d'exécuter d'abord une grosse commande compliquée. Elle est idempotente, vous pouvez donc la tester par vous-même. La suppression est sa propre commande après, et cela vous permet de tout essayer et de vérifier qu'elle fait ce que vous pensez qu'elle fait, parce que vous ne devriez pas faire confiance aux commandes de suppression sans vérification. Cependant, il est intelligent pour une bonne raison : il est portable. Elle respecte votre fichier settings.xml. Si vous exécutez cette commande, et que vous dites à maven d'utiliser un fichier xml spécifique (l'argument -s ou --settings), cela fonctionnera toujours. Vous n'avez donc pas besoin de faire des efforts pour vous assurer que tout est identique partout.
C'est un peu laborieux, mais c'est une façon décente de faire des affaires, IMO.