ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Avlesh Singh <avl...@gmail.com>
Subject Re: Replacing build variables in my application property files
Date Tue, 26 May 2009 17:29:19 GMT
My approach is very similar to yours, David.
Would it make sense to have something like an injectBuildProperties task in
ant?

Cheers
Avlesh

On Tue, May 26, 2009 at 10:44 PM, David Weintraub <qazwart@gmail.com> wrote:

> We do something similar. However, all build files we produce are
> placed in a target directory (much like Maven does). This makes it
> easy to clean up after a build because we only need to delete a single
> directory.
>
> As part of our build process, we also have to do parameter
> replacements. We do this by having the files that need these
> replacements have a suffix of *.template added on to the end.
>
> We then use the <copy> task to copy the files over. We do this in two
> steps. The first copies the files over, but skips all *.template
> files. The next <copy> task now copies over the *.template files.
>
> We use a <glob> mapper to remove the *.template suffix and a <filters>
> and <filtersfile> to do the filtering during the <copy> task:
>
>    <!-- Copy the configuration files that don't contain tokens -->
>        <copy todir="${target.dir}/work"
>            verbose="${copy.verbose.flag}">
>            <fileset dir="${src.dir}/main/resources">
>                <exclude name="**/*.template"/>
>            </fileset>
>        </copy>
>
>        <!-- Copy the configurable files and replace any tokens -->
>        <copy todir="${target.dir}/work"
>            overwrite="true"
>            verbose="${copy.verbose.flag}">
>            <fileset dir="${src.dir}/main/resource">
>                <include name="**/*.template"/>
>            </fileset>
>            <mapper type="glob"
>                from="*.template" to="*"/>
>            <filterset begintoken="@" endtoken="@">
>                <filtersfile file="${deploy.properties.file}"/>
>            </filterset>
>        </copy>
>
>
> On Tue, May 26, 2009 at 12:36 PM, Avlesh Singh <avlesh@gmail.com> wrote:
> > I am dealing with a web application which has a huge list of build
> > parameters. This list ranges from multiple data sources, to REST based
> API
> > Url's, to HTTP connection properties ...  I need to replace these values
> at
> > build time in several confugiration/properties files residing in the
> > applications classpath. To name a few - Hibernate property files, Spring
> > property files etc.
> > Currently, I am accomplising this by having replacable tokens (e.g
> > _build.property_) in the above mentioned files. As a part of the build
> > process (mostly the "war" target), I replace these tokens (using the
> > replaceToken task) with their corresponding build property values. The
> only
> > unfortunate part about all this is that my build.xml file looks horrible,
> > mostly because, the files that I modified, need to be restored back to
> their
> > original state. Only the distribution war for the application is desired
> to
> > have those replaced values.
> >
> > I have a few questions:
> >
> >   1. Is there a better way of achieving this?
> >   2. If no, is a wrapper task worth an ant contribution? I am basically
> >   talking about a task which, given a fileset, would replace all
> occurences of
> >   ${build.property} in those files.
> >
> > Cheers
> > Avlesh
> >
>
>
>
> --
> David Weintraub
> qazwart@gmail.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message