J'ai eu ce même problème, et j'ai écrit une doublure en coque 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 l'exécuter à tout moment, donc je n'aurais pas à me connecter à des trucs, etc. Si vous vous permettez un script shell pour cela, vous pouvez l'écrire plus propre:
#!/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/*
Devrait fonctionner, mais je n'ai pas testé tout ce script. (J'ai testé la première commande, mais pas le script entier.) Cette approche a l'inconvénient d'exécuter d'abord une grande commande compliquée. Il est idempotent, vous pouvez donc le tester par vous-même. La suppression est sa propre commande par la suite, et cela vous permet de tout essayer et de vérifier qu'elle fait ce que vous pensez qu'elle fait, car vous ne devez pas faire confiance aux commandes de suppression sans vérification. Cependant, il est intelligent pour une bonne raison: il est portable. Il respecte votre fichier settings.xml. Si vous exécutez cette commande et dites à maven d'utiliser un fichier xml spécifique (l'argument -s ou --settings), cela fonctionnera toujours. Vous n'avez donc pas besoin de jouer pour vous assurer que tout est le même partout.
C'est un peu maniable, mais c'est une façon décente de faire des affaires, OMI.
-U
drapeau qui mettra à jour les artefacts?