There's one Ivy Ant task that had been flying under my radar, the
buildnumber <http://ant.apache.org/ivy/history/trunk/use/buildnumber.html>task.

It seems to me that the natural use for the *buildnumber *task is during a
build invoked by continuous integration. A CI-invoked Ant target would go
into an ivy.xml file and update the /ivy-module/[EMAIL PROTECTED] attribute with
the ivy.new.revision property value obtained from *buildnumber*. This could
come into play when, under "Dealing with integration versions" on the the Ivy
Best Practices page<http://ant.apache.org/ivy/history/trunk/bestpractices.html>,
you take the "create automatically a new version for each" approach.

I'd be interested in hearing what other uses folks have found for the
*buildnumber
*task.

Also (and actually this has nothing particularly to do with *buildnumber*),
I'd be interested in hearing what mechanisms folks are doing for doing an
automated update of ivy.xml files. Besides the
/ivy-module/[EMAIL PROTECTED] attribute,
there's the /ivy-module/dependencies/[EMAIL PROTECTED] attribute, which also
can be a good candidate for automated updates in certain situations.

I can think of two ways of automatically updating the content of an ivy.xml
file:

   - Use regular expressions. Advantage: everything's right there in the
   build.xml. Disadvantage: regular expressions. Yuck!
   - Manipulate the XML programmatically, such as by binding Java objects to
   the XML schema. This has the disadvantage of requiring Java code (and
   possibly an additional library not already in the classpath), so you'd have
   to create a separate Ant task or Java executable.

Or is there some other mechanism already out there in some Ant task (Ivy or
non-Ivy) that I'm missing, like I'd missed the *buildnumber *task for a
while?

Reply via email to