ANT

2012-03-29 24 views
7

kullanarak bir xml dosyasındaki özelliği değiştirin Bir ANT komut dosyası kullanarak bir build.xml dosyasındaki bir sürüm numarasını değiştirmeye çalışıyorum.ANT

Çeşitli yaklaşımları denedim, arandığında StackOverflow aradı ve yeniden arama yaptım, ancak tam sorguyu alamadım. u Sürüm dünkü tarihi vardır Gördüğünüz gibi

<?xml version="1.0" encoding="UTF-8"?> 
<?eclipse version="3.0"?> 

<project name="feature" default="main" basedir="."> 
<target name="init">  
    <property name="Version" value="1.0.0.20120327"/> 
</target> 

    <target name="main" depends="init"> 
    <description>Main target</description> 
</target> 
</project> 

:

işte benim xml dosyasıdır. Şimdiki tarihle değiştirmem gerek. İşte

denedim budur: Bir filterchain içine replaceregex kullanacağı

<target name="replace"> 
    <tstamp > 
    <format property="touch.time" pattern="yyyyMMdd"/> 
    </tstamp> 

<property name="Feature.dir" location="../feature" /> 

<!--Didnt Work-->  
<copy file="${Feature.dir}\build.xml" tofile="${Feature.dir}\build1.xml" 
filtering="yes" overwrite="yes"> 
<filterset> 
    <filter token="Version" value="1.0.0.${touch.time}"/> 
</filterset> 
    </copy> 

    <!--Didnt work 

    <replacetoken><![CDATA[<property name="Version" value=""/>]]> 
    </replacetoken> 
    <replacevalue><![CDATA[<property name="Version"value="1.0.0.${touchtime}" />]]> 
    </replacevalue> 

    --> 


<!-- Didnt work 
    <copy file="${Feature.dir}/build.xml" tofile="${Feature.dir}/build1.xml" > 
     <filterchain> 
     <tokenfilter> 
       <replaceregex pattern="^[ \t]*Version[ \t]*=.*$" 
           replace="Version=1.0.0.${touch.time}"/> 
     </tokenfilter> 
      </filterchain> 
</copy> 
--> 
</target> 

cevap

9

. Örneğin

:

<copy file="${Feature.dir}\build.xml" tofile="${Feature.dir}\build1.xml"  
    filtering="yes" overwrite="yes"> 
    <filterchain> 
     <tokenfilter> 
      <replaceregex pattern="1.0.0.[0-9.]*" replace="1.0.0.${touch.time}"/> 
     </tokenfilter> 
    </filterchain> 
</copy> 

Dosyayı değiştirmek geçici dosyaya kopyalamak için çekinmeyin ve geri taşımak isterseniz

.

<tempfile property="build.temp.file.name"/> 
<copy file="${Feature.dir}\build.xml" tofile="${build.temp.file.name}" ... /> 
<move file="${build.temp.file.name}" tofile="${Feature.dir}\build.xml" /> 
+0

Çalıştığı Teşekkürler. Ama sadece bir soru. Ya bu değişikliği kendisinin aynı dosyaya dönüştürmek isteseydim? Denedim: daha hiç <= "$ {Feature.dir} \ Build.xml" filtreleme = "evet" üzerine yazma = "evet" tofile dosyayı = "$ {Feature.dir} \ Build.xml" copy> iş – sloggers1894

+0

Endişeye gerek yok. Düzenlenmiş cevabımı görün. – Synesso