Sorry it took so long to respond...

The <buildnumber/> task takes a file and increments the number in the
file. If the file doesn't exist, Ant will create it and put the number
"0" in there.

It is NOT for a complex build number that includes major.minor.micro
numbering. It's simply an integer.

There have been several complaints about this task: The biggest is
that you can't specify the property where the build number is set or
simply read the build number without incrementing it.

There is an OPTIONAL task called <PropertyFile> that is actually not
really an optional task. Unlike most optional tasks, you can use it
without needing any third party jarfiles. It works just like a regular
Ant task. I have no idea why it is considered an optional task.

The <PropertyFile> task may do exactly what you want without any need
for AntContrib tasks. Here's an example build.xml that used both
<buildnumber> and <propertyfile>. It's pretty straight forward.

<project name="test" default="test" basedir=".">
    <target name="test">
        <!-- Note: This would be your default build task -->
        <property file="version.properties"/>
        <buildnumber/>
        <echo message="Now on build number ${major}.${minor}.${build.number}"/>
    </target>

    <target name="major"
        description="Increments Major">
        <propertyfile
            file="version.properties"
            comment="Versioning file">
            <entry key="major"
                value="1"
                default="1"
                type="int"
                operation="+"
                pattern="00"/>
        </propertyfile>

        <propertyfile
            file="version.properties"
            comment="Versioning file">
            <entry key="minor"
                value="0"
                default="0"
                type="int"
                operation="="
                pattern="00"/>
        </propertyfile>

        <propertyfile
            file="build.number"
            comment="Build Number">
            <entry key="build.number"
                value="1"
                default="1"
                type="int"
                operation="="
                pattern="0000"/>
        </propertyfile>
    </target>

    <target name="minor"
        description="Increments Minor">
        <propertyfile
            file="version.properties"
            comment="Versioning file">
            <entry key="minor"
                value="1"
                default="1"
                type="int"
                operation="+"
                pattern="00"/>
        </propertyfile>

        <propertyfile
            file="build.number"
            comment="Build Number">
            <entry key="build.number"
                value="1"
                default="1"
                type="int"
                operation="="
                pattern="0000"/>
        </propertyfile>
    </target>
</project>


On Fri, May 1, 2009 at 11:31 AM, Eric Fetzer <elstonk...@yahoo.com> wrote:
> What is the prescribed method of setting properties in a property file?  
> Specifically, I'm speaking of a file that keeps track of one of the build 
> numbers.  Here's a simple example with what I'd like to do in it:
>
>   <target name="main">
>     <if>
>       <equals arg1="${major.increment}" arg2="true"/>
>       <then>
>         <buildnumber file="major.number"/>
>         <propertycopy name="major.number" from="build.number"/>
>         <!--This would be great, but is my imagination, how would it really 
> work?-->
>         <buildnumber file="minor.number" reset="true"/>
>         <propertycopy name="minor.number" from="build.number"/>
>       </then>
>       <else>
>         <property file="major.number"/>
>         <propertycopy name="major.number" from="build.number"/>
>         <buildnumber file="minor.number"/>
>         <propertycopy name="minor.number" from="build.number"/>
>       </else>
>     </if>
>     <property name="full.buildnumber" 
> value="${major.number}.${minor.number}"/>
>   </target>
>
> Thanks,
> Eric
>
>
>



-- 
David Weintraub
qazw...@gmail.com

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org

Reply via email to