У мене була ця сама проблема, і я написав однокласинну оболонку, щоб це зробити.
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]')/*
Я зробив це як однолінійний, тому що хотів створити проект Дженкінса, щоб просто запускати це, коли мені потрібно, тому мені не доведеться входити в систему тощо. Якщо ви дозволяєте собі сценарій оболонки, ви можете написати це очищення:
#!/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/*
Має працювати, але я не перевіряв весь цей сценарій. (Я перевірив першу команду, але не весь сценарій.) Цей підхід має і зворотний бік виконання спочатку великої складної команди. Це безвідмовно, тому ви можете перевірити це на собі. Після цього видалення - це його власна команда, і це дозволяє вам спробувати все це і перевірити, чи працює він так, як ви вважаєте, що це робить, тому що ви не повинні довіряти командам видалення без перевірки. Однак він розумний з однієї вагомої причини: це портативний. Він поважає ваш файл settings.xml. Якщо ви виконуєте цю команду, і скажіть maven використовувати певний файл xml (аргумент -s або --settings), це все одно буде працювати. Тож вам не доведеться поспішати, переконавшись, що скрізь все однаково.
Це трохи сміливо, але це гідний спосіб ведення бізнесу, ІМО.
-U
прапор, який буде оновлювати артефакти?