私は世界で最も単純な Maven/Jenkins/Nexus セットアップを持っています。
Maven は Jenkins 経由で 1 日に数十回実行SNAPSHOT
され、Nexus リポジトリに問題なくデプロイされます。
ブルームーンに一度、原因がないように見えますが、SNAPSHOT
s の解決を必要とする別の 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
ファイルが適切に生成されている場合とそうでない場合があるという反応がありました。