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 <qazw...@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 <avl...@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 > qazw...@gmail.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > For additional commands, e-mail: user-h...@ant.apache.org > >