2012-10-10 19 views
7

Şu anda, bir dosya içeriğini aşağıdaki şekilde oluşturmak için org.apache.tools.ant.filters.ReplaceTokens'u kullanabiliriz.Not: Özellik dosyasından belirteçleri belirleyerek Jetonları Değiştir

myBeans.xml:

<bean id="mybean1" class="com.test.MyClass1" > 
    <property name="myprop1" value="@[email protected]" /> 
</bean> 

my.properties:

myprop=testme 

gradle dosyası:

from file("myBeans.xml"), { 
    filter(ReplaceTokens, tokens: ["myproperty": project.properties["myprop"]]) 
} 

ben my.properties dosyadan özellik adlarını bulmak gradle isteyeyim Ancak ve xml dosyasında (filtrede myprop belirtmeden) değiştirin. Değilse, tüm PlaceHolders'u el ile eklemeliyim. peşin

cevap

18

yılında

teşekkürler ReplaceTokens yapılandırmaya bir harita gibi özellikleri geçebilir. Anahtar, değiştirilmek istediğiniz simgeyle eşleşmelidir. Örnek:

beans.xml:

<bean id="mybean1" class="com.test.MyClass1" > 
    <property name="myprop1" value="@[email protected]" /> 
</bean> 

my.properties:

myproperty=testme 

build.gradle: yardımcı

task myCopy(type:Copy){ 
    from "bean.xml" 
    into ("$buildDir/beans") 
    def myProps = new Properties() 
    file("my.properties").withInputStream{ 
     myProps.load(it); 
    } 
    filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: myProps) 
} 

umudu.

şerefe, René

+1

Nokta üzerine !! Çok teşekkür ederim. – Chris

+2

'import org.apache.tools.ant.filters.ReplaceTokens' benim için çözüm oldu, teşekkürler! –

+0

Bunu kullanarak, varolan build.xml'nin yerini değiştirmeniz gerekirse, dosyayı boşaltır. Doğru şekilde elde etmenin herhangi bir yolu var mı? (Başka bir klasöre) kullanarak, değiştirilen içerikle düzgün şekilde kopyalanır. – cypronmaya