install:install-fileで追加されたローカルのmavenリポジトリからjarファイルを削除する方法


122
mvn install:install-file -Dfile=phonegap-1.1.0.jar -DgroupId?=phonegap -DartifactId?=phonegap -Dversion=1.1.0 -Dpackaging=jar

上記のコマンドを使用して、ローカルjarをmavenローカルリポジトリにインストールします。今、私はmavenリポジトリから依存関係を持っています。これをローカルリポジトリから削除します。それをきれいにする方法?


回答:


107

これを行うために実行できるmavenコマンドがありますが、ファイルをリポジトリから手動で削除する方が簡単です。

このようにWindows Documents and Settings\your username\.m2または$HOME/.m2Linuxで


10
のみ削除し.m2/repository directoryます。同僚が.m2ディレクトリを以前に削除しており、プロジェクトでsettings.xmlファイルを変更する必要があるため、問題が発生します。
Tiris、2015年

7
.m2/repositoryディレクトリを削除すると、すべてのmavenプラグインファイルも削除されることに注意してください。purge-local-repositoryコマンドを使用すると、依存関係のみが削除されます。
collinhaines

3
下のディレクトリ構造.m2/repositoryはMavenグループIDで編成されているため、削除するアーティファクトに対応するサブディレクトリを削除できます。
Kevin Krumwiede

124

ファイルを手動で削除することはできますが、ローカル(キャッシュ)リポジトリからプロジェクトの依存関係を削除し、オプションでリモートリポジトリからそれらを再解決する公式な方法があります。

purge-local-repository標準のMaven依存関係プラグインの目標は、ローカルにインストールされたこのプロジェクトの依存関係キャッシュから削除することです。必要に応じて、リモートリポジトリから同時にそれらを解決できます。

これはプロジェクトフェーズの一部として使用する必要があります、含まれているプロジェクトの依存関係に適用されるため。また、推移的な依存関係もデフォルトで(ローカルに)パージされます。

キャッシュから1つのアーティファクトを明示的に削除する場合purge-local-repositoryは、manualIncludeパラメータと共に使用します。たとえば、コマンドラインから:

mvn dependency:purge-local-repository -DmanualInclude="groupId:artifactId, ..."

ドキュメントは、これがデフォルトで推移的な依存関係を削除しないことを暗示しています。非標準のキャッシュロケーションで実行している場合、または複数のプラットフォームで実行している場合、これらは「手動」でファイルを削除するよりも信頼性が高くなります。

完全なドキュメントはmaven-dependency-plugin仕様にあります。

:以前のバージョンのmaven dependencyプラグインにはmanual-purge-local-repository目標がありましたが、現在(バージョン2.8)はの使用によって暗示されていますmanualIncludemanualIncludes()付きのドキュメントsも読む必要があります。


これ.jarがMaven Centralまたは他のリポジトリからダウンロードされなかったで機能するとは思いません。私は、このコマンドを実行すると、それはすべてを取り除く.jar自動的にダウンロードsの、それがになったとき.jar、私は手動でインストールされていることの、それがこのエラーメッセージを出力: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:purge-local-repository (default-cli) on project alloy-generator: Failed to refresh project dependencies for: myartifact: required artifacts missing: [ERROR] manually-downloaded-and-installed.jar ...
stiemannkj1

3
実際に調べてみると、がアンインストールされているのに気づきました.jarが、それでもエラーが出力されます。そうするために.jarMavenのは以下のようにいくつかの奇妙なファイルを作成しますので、手動でインストールされているのは、私は、削除するのではなく、この方法を使用して手動で推薦yourjar.jar.lastUpdatedし、yourjar.pom.lastUpdated手動で削除する必要がとにかく可能性があります。しかし、Mavenがすべての依存関係を自動的に管理している場合、これは依存関係をアンインストールするための優れた方法です。
stiemannkj1 2014年

このアプローチでは、コマンドを実行するためにMavenプロジェクトも必要です。OPがGradleビルドなどのコンテキストで指定したインストールコマンドを実行した場合、これは機能しないようです。
jdonmoyer 2014年

19

依存関係を再ダウンロードせずにローカルリポジトリから削除する場合は、少なくとも現在のMavenバージョンでスイッチ-DreResolve = falseを追加する必要があります。

mvn dependency:purge-local-repository -DreResolve=false

再度ダウンロードせずに依存関係を削除します。


あなたが見てとることができてください:stackoverflow.com/questions/58937713/...を
gstackoverflow

12

~/.m2/repository/phonegap/1.1.0/Linux OSを使用している場合は、ローカルディレクトリの下にあるすべてのもの(jar、pom.xmlなど)を削除します。


その方法でjarを削除すると、古いフォルダからjarが「再ダウンロード」されます。同様に削除する必要がある参照があるかもしれません。
Antonio Sesto 2014年

0

私は同じ問題に直面し、上記のすべての提案を行いましたが、何もうまくいきませんでした。最後に、.m2と.ivyの両方のフォルダーを削除しました。


-5
  1. cd ~/.m2
  2. git init
  3. git commit -am "some comments"
  4. cd /path/to/your/project
  5. mvn install
  6. cd ~/.m2
  7. git reset --hard

4
この回答は問題を解決する場合としない場合がありますが、回答に説明を追加すると、OPが表示しようとしている内容をOPが理解するのに役立ちます。
ゲルハルト

2
この応答は問題とは関係ありません。.m2フォルダーにgitリポジトリのセットアップを表示し、gitリポジトリとしてリセットします。
lquitadamo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.