私は現在、いくつかの主要部分に分割された製品を開発しています:サーバー、Androidクライアント、デスクトップクライアント、および一般的なデータ構造を提供するためのクラスライブラリ。現在、私のチームはMaven(プライベートNexusリポジトリを使用)とTeamCityを使用して継続的な統合を行っていますが、バージョン番号の問題が原因でビルドが失敗するという問題が山積しています。現在の解決策では、 Auto -Mavenのバージョンプラグイン をインクリメントしますが、pomファイルに変更を加えるたびに、Gitのpomのバージョンがなくなったため、pomファイルのバージョンを手動で更新する必要があります。日付。
私のチームと私はAtlassian Bambooを見ることにしました。ワークフローに変更を加えているので、これらの問題を一度に解決したいと思います。これが私たちが探しているものです:
誰かがBambooを介してこのようなことをした経験はありますか、またはこれを簡単にするために検討する必要がある別のアプローチはありますか?
Mavenスナップショット機能を使用したスナップショットアプローチを使用すると、すぐに問題なく動作します。
Mavenは、特定のメジャー/マイナービルド番号のリポジトリから最新のスナップショットリリースを自動的に取得します。
その後、リリースを行うときにメジャー/マイナーバージョン番号を更新するだけで済み、mavenはmaven :: releaseコマンドを使用してそれを行うことができます。
私は通常、Jenkins/Hudsonを使用してリリースをビルドし、ビルドの完了時にアーティファクトをリポジトリにアップロードします。以前にTeamCityを使用したことがありますが、Jenkinsの方がはるかに機能的なCIユーティリティであることがわかりました。
Sweetfaが提案した、最善のアプローチは、開発にMavenのSNAPSHOTバージョンを使用することです。バージョンは、Mavenリリースプラグインを使用してリリース時にのみ増加します。これらはすべてJenkinsから自動化できます。
リリース以外のときにアーティファクトバージョンを増やす必要がある理由はわかりません。より細かくコードを保持するためのgitがあり、いつでもビルドを実行できます。