序文:
私の会社は、ほとんどの場合と同様に、いくつかのランタイム環境と、それ自体がさまざまな jar のさまざまなバージョンで構成されているいくつかのリリース バージョンを持っています。
たとえば、Software X のリリース バージョン 1.1、1.2、および 1.3 を考えてみましょう。これらは、開発者のコンピューター、テスト、または実稼働に展開される可能性があります。
Software-x-1.1自体はjarA-0.9.1とjarB-0.7.5で構成されていますが、software-x-1.3はjarA-1.7.31とjarB-0.8.1で構成されています。
現在、Spring の PropertyPlaceholderConfigurer を使用してランタイム変数 (データベース資格情報など) を構成していますが、リリース バージョンによってプロパティも変更されます。
また、Maven 2 POM バージョン 4 を使用して、使用する必要があるコードのバージョンを指定します。jar のバージョン番号を、親 pom 内のプロファイル (dev、test、prod) 内のプロパティとして配置し、すべてのプロジェクト pom でそれらのバージョン番号を参照します。
現時点では、最新リリース以外の特定のリリースに関連するプロジェクト バージョンを特定する方法はありません。さらに、ランタイム構成を SSDM ピックアップに展開し、SSDM ピックアップは、ソフトウェアのビルド バージョンによって定義されたサービスを構成および作成します。
--
質問:
ランタイム環境とバージョン番号を提供するだけで製品を構築するために使用できる手順/ツールはありますか? IE "ビルド 1.1 dev"?
各リリース ビルドに必要な jar バージョンを保存する方法はありますか? 現在、親 pom を含むすべてのファイルをバージョン管理していますが、単に親 pom をバージョン管理するだけでは、その親 pom に関連するリリース バージョンは記録されません。
ビルドのプロセスをさらに自動化するには、他に何ができるでしょうか?
たとえば、親 pom 内でランタイム構成を管理できれば、正しい方向への一歩となりますが、それはスコープ違反のように思えます。
私たちのフレームワークの外にあるツールは、現時点では考えられませんが、遠い将来には考えられません。
概要:
エラーを発生させずにビルド プロセスを最大限に自動化するにはどうすればよいでしょうか。