Mavenのダウンロードには拡張子として.lastUpdatedがあります


82

m2eclipseとsubversiveを使用したEclipseセットアップがあります。svnからmaven2プロジェクトをインポートしました。しかし、アーティファクトがすべて欠落しているというエラーメッセージが表示されます(例:アーティファクトorg.springframework:spring-test:jar:3.0.1.RELEASE:testがありません)。

リポジトリを見ると、そこにjarファイルがありますが、拡張子は.lastUpdatedです。Mavenが.lastUpdatedをjarに追加するのはなぜですか?そしてもっと重要なのは、どうすればこれを修正できますか?

私のPOMにはlastUpdatedタイプについての言及はありません。

回答:


60

これらのファイルは、Mavenがダウンロードによってアーカイブを取得しようとしたが、失敗したことを示しています。帯域幅を節約するために、ファイルにエンコードされた特定の期間が経過するまで、これを再試行しません。コマンドラインスイッチ-Uは、Mavenに再試行期間の前に更新を実行するように強制します。これは、ネットワークから切断されているときにビルドしようとした場合に必要になることがあります。

ファイルを削除する方法は、ほとんどのバージョンのMavenで機能しますが、ファイルはMavenの内部メモリであるため、この方法はお勧めしません。この情報が他の場所で参照または保持されていないという保証はなく、そのような操作はシステムに損傷を与える可能性があります。


mvn -U cleanを試しましたが、問題は解決しませんでした。私は何かが足りないのですか?
MiguelMunoz 2017

最初の段落の最後のステートメントは、主題に関する初心者としての私には矛盾しているように聞こえます-これは、ネットワークから切断された状態でビルドしようとした場合に必要になることがあります。切断中に試みた場合、あなたが言ったことの私の解釈に従って、-Uはリモートリポジトリからのダウンロードを試みて失敗します。
SandeepanNath19年

つまり、「ネットワークから切断された状態でビルドを試み、マーカーが設定されている場合は、-Uの設定が必要になる可能性があります」という意味です。
ジョーンガイSüß

14

以下のようrperezが言った、私はそれらすべてを削除するために使用する.lastUpdatedファイルを。Linuxでは、シンプルにするために小さなスクリプトを作成しました。

find -name \*.lastUpdated -exec rm -fv {} +

以前のコンテンツを含むファイルを作成し、ローカルのMavenリポジトリに配置するだけです。通常はになります~/.m2/repository


2
zshで:rm ~/.m2/repository/**/*.lastUpdated
Dacav 2013年

3
結果deleteを確認execする代わりに、findのフラグを使用して検索したファイルを削除することもできrmます。たとえば、find ~/.m2 -name *.lastUpdated -delete
spaaarky21 2014

7

Maven2をインストールし、コマンドラインからmvncompileを実行しました。これで問題は解決したようです


コマンドラインを使用してコンパイルすると、この問題は解決しました。これはm2eclipseの問題かもしれないと思います。
TAN70 2012年

1
2017年にWindows7 Professional SP 1で実行すると、Eclipseプラグインで同様の問題が発生し、CLIを優先して放棄しました。これにより、保存、Excelへのインポート、および不足しているパッケージ、ダウンロードされなかったファイル、ペアになっていないPOMとJAR、およびその他の有用な統計をカバーする、あらゆる種類の有用なレポートを生成します。
デビッドA.グレイ

2

この問題が発生し、Nexusを使用している場合は、ルーティングルールが定義されている可能性がありますが、これは正しくありません。私はこれを自分でヒットし、ダウンロードしていたファイルは、それが見ていた適切なURLで正しく名前が付けられましたが、それらはすべて.lastUpdated拡張子とエラーメッセージが内容として含まれていました。


1

リポジトリから取得するアーティファクトの一部に問題がある可能性があります。たとえば、SpringFrameworkには独自のリポジトリがあります。この拡張機能は、アーティファクトを完全にダウンロードできない場合に追加されます。Spring Frameworkリポジトリをpomまたはsettings.xmlに追加し、壊れたjarを含むフォルダーを削除して、最初からやり直します。


同意します。有効なpomまたはjarの代わりに、通常、lastUpdateで終了するpomまたはjarはわずか2kサイズであり、その内容はエラーログのようなものです。通常、「...で依存関係を収集できませんでした」の結果です
Tiina 2016年

それは彼らの興味深い考え方です。私は常に、それらが報告しているJARやPOMではなく、個別のエンティティ(lastupdatedファイル)と考えてきました。同様に、MyDotNetAssembly.exe.configは、MyDotNetAssembly.exeとは別のファイルタイプだと思います。
デビッドA.グレイ

0

ターミナルを開き、Eclipseのプロジェクトディレクトリに移動して、次のコマンドを実行します。

mvn install

mvn install依存関係が更新されない場合は、スイッチを使用して呼び出し、強制的に更新します。

mvn install -U

これは、「。lastUpdated」を削除するときにMavenファイルを改ざんするよりもはるかに安全なアプローチです。


1
私は同じ問題を抱えてmvn install -Uいて、助けにはなりませんでした。mvn clean install同様の仕事をしませんでした
roxch

0

.m2 / repositoryディレクトリ内で次のコマンドを使用して、すべてのファイルの名前を変更します。

for file in `find . -iname *.lastUpdated`; do renamed=$(echo $file | rev | cut -c13- | rev); echo renaming: $file to $renamed; mv $file $renamed; done

これは、すべてのソースを再度ダウンロードしないようにする場合に便利です。

これは機能しません.... jarが失われます。:(

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.