web-dev-qa-db-ja.com

Mavenの強制アップデート

作業中のプロジェクトを他のコンピューターにインポートしたため、依存関係のダウンロードが始まりました。

その間に私のインターネット接続がクラッシュしたようです。今私は得ます:

漫画のエラーを作成する。 org.Apache.maven.lifecycle.LifecycleExecutionException:プロジェクトcomicsTestの目標の実行に失敗しました:プロジェクトcomicsTestの依存関係を解決できませんでした:comicsTest:war:0.0.1-SNAPSHOT:次のアーティファクトは解決できませんでした:org.springframework:spring-コンテキスト:jar:3.0.5.RELEASE、org.hibernate:hibernate-entitymanager:jar:3.6.0.Final、org.hibernate:hibernate-core:jar:3.6.0.Final、org.hibernate:hibernate-commons-アノテーション:jar:3.2.0.Final、org.aspectj:aspectjweaver:jar:1.6.8、commons-lang:commons-lang:jar:2.5、

mysql:mysql-connector-Java:jar:5.1.13:org.springframeworkの転送に失敗しました:sp​​ring-context:jar:3.0.5.RELEASE http://repo1.maven.org/maven2 ローカルリポジトリにキャッシュされているため、解決はcentralの更新間隔が経過するか更新が強制されるまで再試行されません。

元のエラー:アーティファクトorg.springframeworkを転送できませんでした:sp​​ring-context:jar:3.0.5.RELEASE from central( http://repo1.maven.org/maven2 ):60000以降に応答がない

そして、どうやってMavenを強制的にアップデートさせるのでしょうか。

622
M4ks
mvn clean install -U

-U snapshot の依存関係を強制的に更新することを意味します。リリース依存関係はこの方法では更新できません。

1433
lwpro2

-Uはすべての依存関係の更新を強制するようです。

Cleanや-Uを使わずに単一の依存関係を更新したい場合は、ローカルのリポジトリから削除してからビルドしてください。

以下の例はslf4j-api 1.7.1-SNAPSHOTを更新する場合です。

rm -rf ~/.m2/repository/org/slf4j/slf4j-api/1.7.1-SNAPSHOT
mvn compile
75
Ayush Gupta

スナップショットではなく、ローカルリポジトリがリリースjarファイルのためにどうにかまとめられている場合(-U--update-snapshotsはスナップショットのみを更新します)、以下を使用してローカルリポジトリを削除できます。

 mvn dependency:purge-local-repository

おそらく、その後、クリーンアップしてもう一度インストールしたいでしょう。

 mvn dependency:purge-local-repository clean install

https://maven.Apache.org/plugins/maven-dependency-plugin/examples/purging-local-repository.htmlで利用可能なより多くの情報 /

64
FuzzyJulz

ここでのすべての答えは私にはうまくいきませんでした。私はハンマー法を使いました:

find ~/.m2/ -name "*.lastUpdated" | xargs rm

これで問題は解決しました:-)

43
Robert Reiz

Eclipse IDEから効果的に行うことができます。あなたがそれを使っているならばもちろん。

Project_Name->Maven->Update Project Configuration->Force Update of Snapshots/Releases
42
Amit Shakya

万が一誰かがプロジェクトのスナップショット依存関係を更新したいだけで、アーティファクトをインストールしたくないのなら:

mvn dependency:resolve -U

IDEで依存関係を再インポートすることを忘れないでください。 IDEAでpomファイルを右クリックしてMaven - > Reimportを選択する必要があります。

19
GlaIZier

ローカルリポジトリの内容がわからない場合は、次のオプションでビルドを実行することをお勧めします。

-Dmaven.repo.local=localrepo

そうすれば、クリーンルーム環境で確実に構築できます。

10
merejy

私の場合は最初に
mvn clean install -U
それでもまだ同じエラーが表示されていたので、プロジェクトを閉じてagianが再度エラーを出しました。

7
rajeev

<maven_home>/confディレクトリのsettings.xmlファイルを確認する必要があります。

2
Ashish Nariyal

これはMavenについての最も厄介なことの1つです。私にとっては、次のようになります。もっと多くの依存関係を要求する依存関係を追加しても、接続が遅い場合、ダウンロードとタイムアウトの間に停止します。タイムアウトしている間、まだフェッチされていないすべての依存関係は.m2キャッシュ内のプレースホルダでマークされ、Mavenはそれを削除することによってキャッシュからプレースホルダエントリを削除しない限り(決して)拾い上げません。

私の知る限りでは、Maven以上のEclipse Mavenプラグインにはこれに関するバグがあります。誰かがこれを報告するべきです。

2
Martin Kersten

他の状況でエラーが発生しました。だから私の解決策は質問に遭遇する他の人に役立つかもしれません:

問題:ローカルリポジトリを別のコンピュータにコピーしましたが、そのコンピュータには特別なリポジトリへの接続がありません。そこでMavenは、無効なリポジトリに対して成果物をチェックしようとしました。

私の解決策:_maven.repositoriesファイルを削除してください。

2
Matthias M

Eclipse IDE を使用している場合:

  • プロジェクトを選択します。
  • Alt + F5を押すと、Update Maven Projectのウィンドウがポップアップします。

  • [スナップショット/リリースを強制的に更新する]をオンにして、[OK]をクリックします。

1
patidarsnju

Eclipseからこの問題を解決するために:

1)Maven pom.xmlに以下の依存関係を追加してpom.xmlファイルを保存します。

<!-- https://mvnrepository.com/artifact/com.thoughtworks.xstream/xstream -->
<dependency>
    <groupId>com.thoughtworks.xstream</groupId>
    <artifactId>xstream</artifactId>
    <version>1.3.1</version>
</dependency>

2)プロジェクトに行く>> Maven >>プロジェクトを更新

プロジェクトを選択して[OK]をクリックします。

3)オプションのステップ、ステップ2まで解決されない場合は、ステップ-1を実行した後にステップの下で行う

プロジェクトに移動>> Maven >>プロジェクトの更新>>チェックボックス 'スナップショット/リリースの強制更新'をチェック

プロジェクトを選択して[OK]をクリックします。

1
Tarun11

私はAndroid-maps-utilsの依存関係と同じエラーを持っています。依存関係セクションでaarタイプのパッケージを使うことで私の問題は解決します。デフォルトのタイプはjarなので、リポジトリ内のどのタイプの依存関係がダウンロードされているかチェックされるかもしれません。

1
zhen_khokh

-Uは更新メイブレポを強制するために使用されます。つかいます

mvn -U clean install
0
Sanjeev Guglani

Mavenが行うことは、プロジェクトのすべての依存関係をローカルのリポジトリ(.m2フォルダ)にダウンロードすることです。インターネットがあなたの地域のレポに問題を引き起こしているので、あなたのプロジェクトは問題に直面しています。これが確実に助けになるかどうかはわかりませんが、.m2フォルダ内のリポジトリフォルダ内のファイルをすべて削除してみることができます。ローカルリポジトリには何もないので、mavenは依存関係を再度ダウンロードすることを余儀なくされ、それによって更新を強制します。通常、.m2フォルダはc:users:[username]:にあります。

0
Ketan R

mvn を-U を-U なしで実行することの主な違いは、-UがローカルのSNAPSHOT jarをリモートのSNAPSHOT jarで上書きすることです。

あなたのプロジェクトの他のモジュールがjarを生成する場合には、ローカルのmvn installからローカルのSNAPSHOT jarが作成されます。

0
Stas

私はすべての答えをここで試しましたが、何もうまくいかないようでした。最初に私のコンピュータを再起動してからmvn clean install -Uを実行しました。これで私の問題は解決しました。

0
Gelo