1

私は世界で最も単純な Maven/Jenkins/Nexus セットアップを持っています。

Maven は Jenkins 経由で 1 日に数十回実行SNAPSHOTされ、Nexus リポジトリに問題なくデプロイされます。

ブルームーンに一度、原因がないように見えますが、SNAPSHOTs の解決を必要とする別の Maven ジョブを実行すると失敗します。SNAPSHOTこれらのまれなケースでは失敗し、Mavenは、多くの場合、数時間前にアップロードした s を見つけることができなくなったと言っています。

Web ブラウザーで Maven が使用しているリポジトリの場所を指定すると、問題なく見つけることができます。

これらのエラーの直前に、(成功した場合と同様に) 大量のmaven-metadata.xmlファイルがダウンロードされているのを常に確認します。おそらく、これらのファイルは Maven に取得方法について何かを伝え1.009-SNAPSHOTます1.009-somehugetimestamphere

このファイルのドキュメントを見つけたことがなく、そこに含まれるファイル名のいずれも「最新」または同様のものとしてマークされていないようです。実際、それがどのように使用されるかはわかりませんが、明らかに必要ですなれ。)

(デバッグ出力にもさまざまな参照がresolver-status.properties表示されます。これは、解決に関係する何かを追跡する、ローカル リポジトリに書き込まれた別の文書化されていないファイルのようですが、何を知っているかはわかりません。)

私の幅広い質問は、Maven がs のダウンロード、解決、およびチェックをどのように行うのかということです。SNAPSHOTリポジトリ情報が有効であると仮定すると (結局のところ、このジョブは 90% の確率で機能し、変更なしで 10% の確率で失敗します)、適切なリポジトリを見つけるために Maven は特定のリポジトリでどのような手順を実行しますSNAPSHOTか?

編集:いくつかのドキュメントが見つかりました: http://maven.apache.org/ref/3.0.4/maven-repository-metadata/repository-metadata.htmlmaven-metadata.xmlただし、Nexus 2.0でファイルが見つからない理由は説明されていませんインストールには<latest/>要素があります。また、これらのファイルがどのように使用されるかについても詳しく説明しません。

ユーザー リストに投稿したところ、Nexusの問題である可能性があり、これらのmaven-metadata.xmlファイルが適切に生成されている場合とそうでない場合があるという反応がありました。

4

1 に答える 1

1

先日、別のリポジトリをプロキシする Nexus サーバーで非常によく似た問題に遭遇しました。私の場合、Nexus の有効期限設定を変更すると問題が解決しました。「Artifact Max Age」と「Metadata Max Age」を 1 日から 1 分に減らしました。

于 2012-08-27T13:18:40.013 に答える