2012-03-25 15 views
1

私が取り組んでいる現在のアプリケーションの構築プロセス。現在、アプリケーションを構築するために、構成ファイルは、複数のプロパティー・ファイルから、使用される環境、環境タイプと国の組み合わせに基づいてアセンブルされます。複数のローカライズされた環境

は少し良くそれを説明するには、フォルダ階層のようにあります:各フォルダに合併し、選択された組み合わせに基づいて上書きされるプロパティファイルがある

|--DEFAULT 
    |-- UK 
    |-- Malaysia 
    |-- India 
|--PROD 
    |-- UK 
    |-- Malaysia 
    |-- India 
|--DEV 
    |-- UK 
    |-- Malaysia 
    |-- India 

。 (各ドメインと各国に固有のプロパティがあるため、デフォルト/ファイルとプロダクト/ファイルはデフォルト/ファイルを上書きします)

私はアプリケーション、特にウェブサイト、コードの大部分は一般的ですが、ローカライズされた構成では機能の一部(支払い方法など)が変更されていますが、プロセスを改善/簡素化するためのベストプラクティスやヒントを見つけることができませんでした。誰にでも何か提案はありますか?

アプリケーションは依存関係とCI管理のためにMavenとJenkinsでJavaで構築されています。

+2

Mavenプロファイルを確認してください。 http://maven.apache.org/guides/introduction/introduction-to-profiles.html –

+0

Mavenアセンブリは、プロファイルとともに非常に便利です。 –

答えて

1

Jenkinsを使用しているので、間違いなく考慮すべき点は、Matrix(Multi-Configuration)Buildsを使用することです。あなたはおそらく2つの軸を持っているでしょう:1つは国の上のもう1つのタイプの環境タイプです。このアプローチの利点は、構成間の共通点を除外したり、軸の値に基づいて同様の方法でそれらの違いを扱うように強制する(または少なくとも微調整)ことです。また、今後の変化のポイント数も削減されます。

このアプローチの最も深刻な欠点は、私の意見では、Matrix Buildsはまだ多くのプラグインがそれらをうまく処理せず、バグや不足を招くという影響で、Jenkinsの「ファーストクラスの市民」ではないということです定期的なビルドに利用できる機能もう1つの欠点は、Matrix Buildsがやや混乱し、慣れていく必要があることです。

+0

これは、私がこれまで見てきた最良の選択肢のようですが、この機能には多くのドキュメントがありません... – jasalguero

関連する問題