私はプロジェクトのリポジトリとしてNexusを使用しています。私はCIオーケストレーターとしてJenkinsを使用しています。Sonatype Nexus:同期RESTコール
私のJenkinsの仕事の終わりに、Mavenメタデータを再構築してすべてのコンポーネントの最新バージョンに関する情報を更新できるように、Nexus REST APIを呼び出します。 REST呼び出しが実行されるとすぐに戻りますが、更新タスクは実際にNexusでキューに入れられ、最終的に実行されます。
複数のジョブが並行して実行されているので、Mavenメタデータがまだ更新されていない間にコンポーネントの1つがNexusから依存関係を取り出そうとしていると、ある種の競合状態になることがあります - したがって、新しいバージョンが既に存在していてもメタデータが更新される直前であっても、古いバージョンはNexusから引き出されます。
これを防ぐ良い方法は、この呼び出しを同期させることです。つまり、Mavenメタデータが実際に再構築されるまでビルドをブロックすることです。
もちろん、コンポーネントの最新バージョンをNexusにポーリングして更新するまで、これをプログラムで行うことができます。しかし、Nexus APIを使用してこれを行う方法があるのだろうかと思います。思考?