2016-04-11 11 views
1

プロパティの値を決定する優雅な方法はありますか? たとえば、プロパティをファイルから読み込むことができますが、環境変数から取得することもできます。環境変数が存在する場合は、ファイルの値よりも優先させたいと思います。Phingプロパティ:環境変数からプロパティファイルへのフォールバック

は、ここで私は(例えば、プロパティdeploy.destinationを)持っているものです。

<property environment="env" /> 
<if> 
    <isset property="env.DEPLOY_DEST" /> 
    <then> 
     <property name="deploy.destination" refid="env.DEPLOY_DEST"/> 
    </then> 
</if> 
<property file="build.properties"/> 

をしかし、それはかなりかさばるだ(特に複数のプロパティを超えるため)。

このようなことができる方法はありますか?

<property environment="env" /> 
<property name="deploy.destination" refid="env.DEPLOY_DEST"/> 
<property file="build.properties"/> 

この例では、env.DEPLOY_DESTが設定されていないと失敗します。

ありがとうございます!

答えて

2

あなたの文を考える:

環境変数が存在する場合、私は、ファイルの値の上にそれを優先させたいと思います。

あなたは鍵がENVプロパティ値が滞在できるようにする = "false" をオーバーライドしなければならない

<property environment="env" /> 
<if> 
    <available file="custom.properties"/> 
    <then> 
     <property file="custom.properties" override="false"/> 
    </then> 
</if> 

を行うことができます。

+0

私は、環境変数はプロパティファイルの変数とは異なる名前が付けられていることが重要だと思います。 たとえば、環境変数は 'DEPLOY_DEST'ですが、同じ変数はプロパティファイルで' deploy.destination'と呼ばれます。私はこれが標準であると仮定していますか? –

+0

デファクトスタンダード、あなたはそうです。マッパーを使用すると、ポイントに到達できるはずです。 –

関連する問題