8

私たちの Maven プロジェクトはすべてジェンキンス上に構築され、アーティファクトを Maven リポジトリにデプロイします。

ただし、何らかの理由で、新しくビルドされたばかりの他のプロジェクトに依存するプロジェクトをビルドするときに、ある種のキャッシュまたは更新の遅延があるようです。

アーティファクト A にバグがあり、B が A に依存しているとします。今度はローカルでバグを修正し、B の依存関係を更新し、B を実行すると、すべて問題ありません。私は明らかにチェックインします。次に、Jenkins で A をビルドし、その後 B をビルドします。次に、新しくビルドした B を取得して実行します。バグはまだあります。数時間後に B を再度ビルドすると、親切にも新しい A が取得され、バグはなくなります..

したがって、ジェンキンスにサーバーで新しい A を使用させる方法が必要です。mvn -uまたは使用してmvn --update-snapshotsも役に立ちません。更新を確認し、何も見つかりません..

4

1 に答える 1

7

すべてのスナップショットが Jenkins の同じインスタンスでローカルに構築されるため、Maven/Jenkins ではそのようなキャッシュ動作は不可能だと思います。リモートリポジトリから取得していないため、「スナップショットの更新」オプションは必要ありません。ただし、Jenkins のリポジトリ設定を確認することをお勧めします。Jenkins では、使用する Maven リポジトリを変更できます (デフォルトでは、マシン全体で共有されますが、ワークスペースごとまたはエグゼキュータごとなどに変更できます) (プロジェクト構成の下で、Build -> AdvancedUse private Maven repository"、および でManage Jenkins -> Configure System -> Maven Project Configuration、管理する方法を選択できますLocal Maven Repository。「Local to executor」に変更したと思われます。

B が使用する別のリポジトリにインストールされた A のビルドを引き起こす設定がある場合、直面した問題に遭遇する可能性があります。

于 2012-08-02T01:32:30.633 に答える