2013-01-31 30 views
16

ローカルのマルチモジュールプロジェクトでmvn installを実行すると、プロジェクトアーティファクトをビルドしてローカルリポジトリにインストールします。 mvn clean私のプロジェクトの特定のターゲットディレクトリをクリーンアップするようです。ローカルMavenリポジトリからプロジェクト成果物を削除するにはどうすればよいですか?

私のプロジェクトモジュールをローカルリポジトリからアンインストールするには、どのコマンドをmavenで使用しますか?例えば、私のプロジェクトはfoo-0.1.jarとbar-0.2.jarを出力します。私のローカルリポジトリから削除したいものは、そこに入り、自分で削除する必要はありません。

+0

まあ、一般的に私はちょうど...ファイルシステムからそれらを削除... –

+0

それらの17は、それらを削除するためのスクリプトを実行している単一のプロジェクトのためにそこにあるは迷惑ですので、私はむしろ、Mavenは以来のことだろうそれは何があるかを知っている。 – ams

+0

あなたが出力するfoo-0.1.jarは、mavenの観点からはローカルリポジトリから決して削除されないリリースです。だから最初の質問:どうしてそれらを削除したいのですか? – khmarbaise

答えて

4

ローカルリポジトリからアーティファクトをパージすることはできますが、なぜこれを行うのですか?

これは、すべてのプロジェクト - との依存関係のアーティファクト

mvn dependency:purge-local-repository 

これは、更なる詳細については、補足的なコマンドライン引数(ドキュメントを参照してください)によって影響を受けることができ

をパージします。それとは別に、あなたは maven-dependency-pluginを経由していることを行うことができます。

+2

私はいくつかの人工物を 'mvn install'しました。 'mvn dependency:purge-local-repository'を実行した後、そのアーティファクトに依存する他のプロジェクトがビルドされます。地元のレポから取り除かれた場合、そのアーティファクトはどこから得られますか? – Honza

+0

'dependency:purge-local-repository'は、現在のpom自体によって指定された成果物を遠隔操作しません。すべての依存関係を「リロード」します。 – isnot2bad

2

ベストプラクティスは、開発中の成果物にSNAPSHOTというバージョンを追加する限り、リリース戦略を実装することです。インストールを実行すると、Mavenはローカルリポジトリ内の成果物を自動的に更新します。開発が完了したらSNAPSHOTを削除し、バージョンをリリースします(デプロイメント経由で)。さらなる開発が必要な場合は、バージョン番号を増やしてSNAPSHOTで再度追加することができます。

+0

これは、あまりにも遅くなるまで間に合わなかった循環依存性や成果物を検出できないようにする、特に悪い方法です。 – marcv81

+0

どのようにそうですか? MrsTangが標準のMavenバージョン管理の使用を提案しているように私に聞こえます...開発中のバージョンで-SNAPSHOTを使用し、リリースするときに削除してください。依存関係をダウンロードするときにユーザーが直面している課題を本当に解決できるかどうかはわかりませんが、標準的なバージョン管理を使用して循環依存性やアーティファクトが見つからないようにする方法はありません。 – tbradt

37
mvn build-helper:remove-project-artifact 
+1

は、現在のプロジェクトだけをリポジトリから削除します。使用法:プロジェクトにナビゲートしてコマンドを実行する – tbraun

+1

Works man、ありがとう! – JRichardsz

関連する問題