バックグラウンド。私の組織は、Maven、Bamboo、Artifactoryを使用して、継続的インテグレーションプロセスをサポートしています。Artifactoryでのストレージの管理(古いSNAPSHOTビルドのローテーション)とチーム間の統合の最新化(MavenはビルドごとにSNAPSHOTの依存関係の更新を自動的にチェックする)を支援するために、MavenのSNAPSHOT修飾子に依存しています。
問題。私たちが抱えている課題の1つは、SNAPSHOTを使い続けながら、環境から環境へのビルドを正しく促進することです。テスターがバージョン1.8.2-SNAPSHOTを機能テスト環境にデプロイし、Subversionのリビジョン1400にあるとします。また、機能テストに合格したとしましょう。テスターがArtifactoryからパフォーマンステスト環境に1.8.2-SNAPSHOTをプルすることを決定するまでに、開発者はSubversionへの変更をコミットできた可能性があるため、Artifactoryの実際のバイナリは異なる回転数になります。SNAPSHOTビルドを使用するときに、回転数が下から変わらないようにするにはどうすればよいですか?
制約。明らかに、無意識のうちに異なるビルドをデプロイしたくありません。また、機能テストでテストしたパフォーマンステストで正確なバイナリをテストしたいので、ソースから再構築したくありません。
私たちが検討したアプローチ。考えは、バージョンに1.8.2.1400のような4番目のコンポーネントをスタンプしたいということです。ここで、4番目のコンポーネントはSubversionrevです。(副次的な質問として、Mavenプラグインまたはそれを自動的に行う他の何かがありますか?)しかし、そうすると、MavenとArtifactoryはこれらが異なるバージョンであると考えるため、本質的にスナップショット機能が失われます。
スクラムを使用しているため、非常に早い段階(2日目程度など)でテスト環境にデプロイします。SNAPSHOTのメリットが再び失われるため、開発サイクルの早い段階でSNAPSHOT修飾子を削除することは意味がないと思います。
他の組織がこの問題をどのように解決するかを知っていただければ幸いです。