私はあなたのプロパティファイルが95%名で構成されていると仮定するつもりです=すべてのデプロイメント環境間で同一の値ペアと1つのデプロイメント環境から別のデプロイメント環境に変更される、の5%の名前=値のペア。
この仮定が正しい場合は、次のような疑似コードを試すことができます。
void generateRuntimeConfigFiles(int deploymentMode)
{
String[] searchAndReplacePairs;
if (deploymentMode == Constants.PRODUCTION) {
searchAndReplacePairs = ...
} else if (deploymentMode == Constants.STAGING) {
searchAndReplacePairs = ...
} else { // Constants.DEVELOPMENT
searchAndReplacePairs = ...
}
String[] filePairs = new String[] {
"log4j-template.properties", "log4j.properties",
"jdbc-template.properties", "jdbc.properties",
"foo-template.xml", "foo.xml",
...
};
for (int i = 0; i < filePairs.length; i += 2) {
String inFile = filePairs[i + 0];
String ouFile = filePairs[i + 1];
searchAndReplaceInFile(inFile, outFile,
searchAndReplacePairs);
}
}
あなたのアプリケーションは、プロパティ/ XMLファイルに依存しているかもしれない何か他のものを初期化する前にgenerateRuntimeConfigFiles()
を呼び出します。
ここで対処しなければならない問題は、searchAndReplacePairs
のさまざまな設定を保存して取得する方法だけです。おそらく、あなたはproduction.properties
、staging.properties
、development.properties
のような名前のファイルからそれらを得ることができました。
上記のアプローチが魅力的な場合は、searchAndReplaceInFile()
というソースコードをメールで送信して、ホイールを再作成する必要がありません。私の電子メールアドレスは、私のStackoverflowプロファイルの "info"ボックスから見つけることができます。
私は間違いなく、このことについて考えたいと私はそれは素敵な解決策だと思います。私の唯一の問題は、今はビルドツールを使用していない、ちょうどEclipse(悪い、私が知っている)です。 –