2010-09-09 11 views
7

vorrei sostituire i gettoni nel file di origine con Ant:Ant sostituire gettone da file di proprietà

some test ${foo} other text ... 

Gettoni sono contenute in un file di proprietà ad es .:

foo=1 

In realtà questo è facile se i token nei file di origine erano come '@@ foo @@' o 'foo', ma non sono in grado di sostituire l'intero token: $ {foo}

Ho successo anni fa ma questa volta ho fallito. ..

Grazie

+0

In altre parole, stesso lavoro di Maven-risorse-plugin con filtraggio ma con Ant –

+0

Vedi http://stackoverflow.com/q/1232532/183172 –

+0

google "expandproperties formica" questo fa parte del filterchains –

risposta

4

Questo è un po 'simile a these.

Le proprietà vengono caricate dal file properties.txt. Il punto debole è che tutte le occorrenze di ${ nel testo di input vengono convertite in {prima del sostituzione del token, che potrebbe interrompere le cose se tale stringa appare altrove nel testo. Se questo è un problema, dovrebbe essere ancora possibile adattare questa soluzione.

<copy file="input.txt" tofile="output.txt"> 
    <filterchain> 
    <replaceregex pattern="\$\{" replace="{" /> 
    <filterreader classname="org.apache.tools.ant.filters.ReplaceTokens"> 
      <param type="propertiesfile" value="properties.txt"/> 
      <param type="tokenchar" name="begintoken" value="{"/> 
      <param type="tokenchar" name="endtoken" value="}"/> 
    </filterreader> 
    </filterchain> 
</copy> 
Problemi correlati