M2EclipseとsubversiveでEclipseをセットアップしています。 svnからmaven2プロジェクトをインポートしました。しかし、アーティファクトの全体が欠落しているというエラーメッセージが表示されます(例:アーティファクトorg.springframework:spring-test:jar:3.0.1.RELEASE:testがありません)。
リポジトリを見ると、jarファイルがありますが、拡張子は.lastUpdatedになっています。 Mavenが.lastUpdatedをjarに追加するのはなぜですか?そしてさらに重要なこと:これをどうすれば修正できますか?
私のPOMにはlastUpdatedタイプに関する言及はありません。
これらのファイルは、ダウンロードによってアーカイブを取得しようとしたが、失敗したことをMavenに示します。帯域幅を節約するために、ファイルにエンコードされた特定の期間が経過するまでこれを再試行しません。コマンドラインスイッチ-Uは、mavenが再試行期間の前に更新を実行するように強制します。これは、ネットワークから切断された状態でビルドしようとした場合に必要になることがあります。
ファイルを削除する方法は、Mavenのほとんどのバージョンで機能しますが、ファイルはMavenの内部的な思い出なので、この方法はお勧めしません。この情報が他の場所で参照または保持されないという保証はなく、そのような操作はシステムに損害を与える可能性があります。
rperez が言ったように、私はこれらすべての.lastUpdated
ファイル。 Linuxでは、シンプルにするための小さなスクリプトを作成しました:
find -name \*.lastUpdated -exec rm -fv {} +
以前のコンテンツでファイルを作成し、ローカルのMavenリポジトリに配置するだけです。通常、~/.m2/repository
。
Maven2をインストールし、コマンドラインからmvn compileを実行しました。これで問題が解決したようです
この問題が発生し、Nexusを使用している場合、ルーティングルールが定義されている可能性がありますが、これは正しくありません。私は自分でこれをヒットし、ダウンロードしていたファイルには正しい名前が付けられ、適切なURLが表示されていましたが、それらはすべて.lastUpdated
拡張子と内容としてのエラーメッセージ。
リポジトリから取得するアーティファクトの一部に問題がある可能性があります。たとえば、Springフレームワークには独自のリポジトリがあります。この拡張機能は、アーティファクトを完全にダウンロードできない場合に追加されます。スプリングフレームワークリポジトリをpomまたはsettings.xmlに追加し、壊れたjarを含むフォルダーを削除して、再起動します
ターミナルを開き、Eclipseのプロジェクトディレクトリに移動して、次を実行します。
mvn install
mvn install
は依存関係を更新しません。その後、強制的に更新するためにスイッチで呼び出します:
mvn install -U
これは、「。lastUpdated」を削除するときにMavenファイルを改ざんするよりもはるかに安全な方法です。