Eu tive esse mesmo problema e escrevi um shell de uma linha para fazer isso.
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]')/*
Eu fiz isso como uma única linha, porque queria ter um projeto Jenkins para simplesmente executar isso sempre que necessário, para não precisar fazer logon nas coisas etc. Se você se permitir um script de shell para ele, você pode escrever mais limpo:
#!/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/*
Deve funcionar, mas não testei todo esse script. (Testei o primeiro comando, mas não o script inteiro.) Essa abordagem tem a desvantagem de executar um comando grande e complicado primeiro. É idempotente, para que você possa testá-lo por si mesmo. A exclusão é seu próprio comando posteriormente, e isso permite que você tente tudo e verifique se faz o que pensa, porque não deve confiar nos comandos de exclusão sem verificação. No entanto, é inteligente por um bom motivo: é portátil. Ele respeita seu arquivo settings.xml. Se você estiver executando este comando e instruir o maven a usar um arquivo xml específico (o argumento -s ou --settings), isso ainda funcionará. Então você não precisa se preocupar em garantir que tudo seja o mesmo em todos os lugares.
É um pouco pesado, mas é uma maneira decente de fazer negócios, IMO.
-U
sinalizador que atualizará os artefatos?