0

私は見栄えの良いチュートリアルに従っています:http://www.objectdb.com/tutorial/jpa/eclipse/spring/project

pom.xml のコードをコピーした後のステップ 1 で、9 つのエラーが発生します。pom.xml の 1 行目に表示されるエラーは次のとおりです。

Failure to transfer org.apache.maven.reporting:maven-reporting-api:jar:2.0.6 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact org.apache.maven.reporting:maven-reporting-api:jar:2.0.6 from/to central (http://repo.maven.apache.org/maven2): The operation was cancelled.   pom.xml /Guestbook  line 1  Maven Configuration Problem

必要に応じて、他のエラーを投稿できます。この前に、いくつかの単純な既製の Maven プロジェクトを実行しようとしましたが、それらは archtype と呼ばれていると思います。同様のエラーがありました。なぜこれが起こっているのか理解できず、すぐにエラーをスローしないようにすることはできません。

4

2 に答える 2

5

ブードゥー教のコーディングにはノーと言いましょう。.m2を核攻撃しないでください!

Maven がビルドの依存関係を解決しようとするとき、最初にローカル リポジトリ (別名 .m2/repository) を調べます。そこで見つかった場合は、ローカルにキャッシュされたアーティファクトを使用します。アーティファクトがローカル リポジトリに存在しない場合、Maven は既知のリモート リポジトリから解決を試みます。そのままでは、maven central についてのみ認識します。だから、それはそこに行きます。

あなたが遭遇しているシナリオには、1 つの大きな問題があります。特定の依存アーティファクトが SNAPSHOT アーティファクトである場合、SNAPSHOT 名は現在開発中であり、頻繁に変更される可能性があることを示しているため、そのアーティファクトの新しいバージョンを時折確認する必要があります。これを処理するために、Maven はローカル リポジトリにある SNAPSHOT アーティファクトの新しいバージョンをリモート リポジトリで 1 日 1 回チェックするように構築されています。

さらに、リモート リポジトリでアーリファクトを見つけようとして何らかの障害が発生した場合 (通常、一時的または永続的なネットワーク関連の問題 (ネットワークの遅さまたはプロキシの設定) が原因で発生します)。ローカル リポジトリのメタデータ。SNAPSHOT 解決と同様に、この失敗は、指定されたアーティファクトの状態として 24 時間持続します。

Maven の 24 時間ポリシーをオーバーライドするために、ローカル リポジトリを削除する必要はありません。-U フラグを渡すだけで、すべてのローカルアーティファクトの状態を「更新」します。つまり、リモートリポジトリに出て、すべてのリモートリポジトリを再チェックします (正常に解決されたリリースアーティファクトを除く - リリースは永続的である必要があります)。約。

だから、試してみてください:

mvn -U install

いいえ、

rm -Rf .m2
于 2013-01-13T19:31:07.873 に答える