作業中のプロジェクトを他のコンピューターにインポートしたため、依存関係のダウンロードが始まりました。
その間に私のインターネット接続がクラッシュしたようです。今私は得ます:
漫画のエラーを作成する。 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の転送に失敗しました:spring-context:jar:3.0.5.RELEASE http://repo1.maven.org/maven2 ローカルリポジトリにキャッシュされているため、解決はcentralの更新間隔が経過するか更新が強制されるまで再試行されません。
元のエラー:アーティファクトorg.springframeworkを転送できませんでした:spring-context:jar:3.0.5.RELEASE from central( http://repo1.maven.org/maven2 ):60000以降に応答がない
そして、どうやってMavenを強制的にアップデートさせるのでしょうか。
mvn clean install -U
-U
は snapshot の依存関係を強制的に更新することを意味します。リリース依存関係はこの方法では更新できません。
-U
はすべての依存関係の更新を強制するようです。
Cleanや-U
を使わずに単一の依存関係を更新したい場合は、ローカルのリポジトリから削除してからビルドしてください。
以下の例はslf4j-api 1.7.1-SNAPSHOT
を更新する場合です。
rm -rf ~/.m2/repository/org/slf4j/slf4j-api/1.7.1-SNAPSHOT
mvn compile
スナップショットではなく、ローカルリポジトリがリリースjarファイルのためにどうにかまとめられている場合(-U
と--update-snapshots
はスナップショットのみを更新します)、以下を使用してローカルリポジトリを削除できます。
mvn dependency:purge-local-repository
おそらく、その後、クリーンアップしてもう一度インストールしたいでしょう。
mvn dependency:purge-local-repository clean install
ここでのすべての答えは私にはうまくいきませんでした。私はハンマー法を使いました:
find ~/.m2/ -name "*.lastUpdated" | xargs rm
これで問題は解決しました:-)
Eclipse IDE
から効果的に行うことができます。あなたがそれを使っているならばもちろん。
Project_Name->Maven->Update Project Configuration->Force Update of Snapshots/Releases
万が一誰かがプロジェクトのスナップショット依存関係を更新したいだけで、アーティファクトをインストールしたくないのなら:
mvn dependency:resolve -U
IDEで依存関係を再インポートすることを忘れないでください。 IDEAでpomファイルを右クリックしてMaven - > Reimportを選択する必要があります。
ローカルリポジトリの内容がわからない場合は、次のオプションでビルドを実行することをお勧めします。
-Dmaven.repo.local=localrepo
そうすれば、クリーンルーム環境で確実に構築できます。
私の場合は最初にmvn clean install -U
それでもまだ同じエラーが表示されていたので、プロジェクトを閉じてagianが再度エラーを出しました。
<maven_home>/conf
ディレクトリのsettings.xmlファイルを確認する必要があります。
これはMavenについての最も厄介なことの1つです。私にとっては、次のようになります。もっと多くの依存関係を要求する依存関係を追加しても、接続が遅い場合、ダウンロードとタイムアウトの間に停止します。タイムアウトしている間、まだフェッチされていないすべての依存関係は.m2キャッシュ内のプレースホルダでマークされ、Mavenはそれを削除することによってキャッシュからプレースホルダエントリを削除しない限り(決して)拾い上げません。
私の知る限りでは、Maven以上のEclipse Mavenプラグインにはこれに関するバグがあります。誰かがこれを報告するべきです。
他の状況でエラーが発生しました。だから私の解決策は質問に遭遇する他の人に役立つかもしれません:
問題:ローカルリポジトリを別のコンピュータにコピーしましたが、そのコンピュータには特別なリポジトリへの接続がありません。そこでMavenは、無効なリポジトリに対して成果物をチェックしようとしました。
私の解決策:_maven.repositoriesファイルを削除してください。
Eclipse IDE を使用している場合:
Alt + F5を押すと、Update Maven Projectのウィンドウがポップアップします。
[スナップショット/リリースを強制的に更新する]をオンにして、[OK]をクリックします。
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]をクリックします。
私はAndroid-maps-utilsの依存関係と同じエラーを持っています。依存関係セクションでaarタイプのパッケージを使うことで私の問題は解決します。デフォルトのタイプはjarなので、リポジトリ内のどのタイプの依存関係がダウンロードされているかチェックされるかもしれません。
-Uは更新メイブレポを強制するために使用されます。つかいます
mvn -U clean install
Mavenが行うことは、プロジェクトのすべての依存関係をローカルのリポジトリ(.m2フォルダ)にダウンロードすることです。インターネットがあなたの地域のレポに問題を引き起こしているので、あなたのプロジェクトは問題に直面しています。これが確実に助けになるかどうかはわかりませんが、.m2フォルダ内のリポジトリフォルダ内のファイルをすべて削除してみることができます。ローカルリポジトリには何もないので、mavenは依存関係を再度ダウンロードすることを余儀なくされ、それによって更新を強制します。通常、.m2フォルダはc:users:[username]:にあります。
mvn
を-U と を-U なしで実行することの主な違いは、-U
がローカルのSNAPSHOT jarをリモートのSNAPSHOT jarで上書きすることです。
あなたのプロジェクトの他のモジュールがjarを生成する場合には、ローカルのmvn install
からローカルのSNAPSHOT jarが作成されます。
私はすべての答えをここで試しましたが、何もうまくいかないようでした。最初に私のコンピュータを再起動してからmvn clean install -U
を実行しました。これで私の問題は解決しました。