私はこれと同じ問題を抱えていて、それを行うためにシェルでワンライナーを書きました。
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]')/*
Jenkinsプロジェクトを必要なときにいつでも実行できるようにしたいので、ワンライナーとして実行しました。そのため、他のものにログオンする必要はありませんでした。シェルスクリプトを許可すると、あなたはそれをよりきれいに書くことができます:
#!/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/*
動作するはずですが、そのスクリプトのすべてをテストしていません。(最初のコマンドはテストしましたが、スクリプト全体はテストしていません。)このアプローチには、大きくて複雑なコマンドを最初に実行するという欠点があります。べき等なので、自分でテストできます。削除は後で独自のコマンドになります。検証なしで削除コマンドを信頼するべきではないため、これを試して、意図したとおりに機能することを確認できます。ただし、これには1つの理由があります。これは、settings.xmlファイルを尊重します。このコマンドを実行していて、mavenに特定のxmlファイル(-sまたは--settings引数)を使用するように指示しても、これは引き続き機能します。したがって、すべてがどこでも同じであることを確認するためにいじくる必要はありません。
それは少し用心深いですが、それはビジネスを行う上品な方法です、IMO。
-U
アーティファクトを更新するフラグを試しましたか?