2010-09-09 29 views
7

me gustaría reemplazar fichas en los archivos de origen con Ant:Ant reemplazar token del archivo de propiedades

some test ${foo} other text ... 

Tokens están contenidas en un archivo de propiedades por ejemplo .:

foo=1 

En realidad esto es fácil si los tokens en los archivos fuente eran como '@@ foo @@' o 'foo' pero no puedo reemplazar token completo: $ {foo}

He tenido éxito hace años, pero esta vez he fallado. ..

Gracias

+0

En otras palabras, hacer mismo trabajo que maven-recursos-plugin con el filtrado, pero con Ant –

+0

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

+0

google "expandproperties hormiga" esto es parte de filterchains –

Respuesta

4

Esto es algo similar a these.

Las propiedades se cargan desde el archivo properties.txt. La debilidad aquí es que todas las ocurrencias de ${ en su texto de entrada se convierten a {antes de la sustitución de token, que bien puede romper cosas si esa cadena aparece en otra parte del texto. Si eso es un problema, todavía es posible adaptar esta solución.

<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> 
Cuestiones relacionadas