2016-04-11 18 views
1

Bir mülk için değer belirleme konusunda zarif bir yol var mı? Örneğin, bir özelliğin bir dosyadan okunmasına izin vermek istiyorum, aynı zamanda bir ortam değişkeninden yakalanmasına da izin vermek istiyorum. Ortam değişkeni varsa, dosyanın değeri üzerinden önceliklendirmek isterim.Phing özelliği: ortam değişkeninden özellik dosyasına geri dönüş

Burada (örnek özelliği deploy.destination ile) ne var:

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

Ancak, oldukça hantal (özellikle fazla özellik fazla).

Böyle bir şey yapabileceğim bir yol var mı? env.DEPLOY_DEST ayarlı değilse bu örnekle

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

, başarısız olur.

Teşekkürler!

cevap

2

ifadelerinizin Verilen:

ortam değişkeni varsa, ben dosyanın değerinin üzerine öncelik vermek istediğiniz.

Eğer

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

anahtar = env özellik değerleri kalmasına izin "false" kılma olacaktır yapabilirsiniz.

+0

Kritik ayrıntıların, ortam değişkenlerinin özellikler dosyasındaki değişkenlerden farklı olarak adlandırıldığı sanırım. Örneğin, ortam değişkeni "DEPLOY_DEST" iken, aynı değişken özellikler dosyasında "deploy.destination" olarak adlandırılır. Bunun standart olduğunu mu varsayıyorum? –

+0

De facto standart, bunun üzerinde haklısın. Bir haritalayıcı kullanarak noktaya gelebilmeniz gerekir. –

İlgili konular