Class PropertyFile

java.lang.Object
org.apache.tools.ant.ProjectComponent
org.apache.tools.ant.Task
org.apache.tools.ant.taskdefs.optional.PropertyFile
All Implemented Interfaces:
Cloneable

public class PropertyFile extends Task
Modifies settings in a property file.

The following is an example of its usage:

    <target name="setState">
      <property
        name="header"
        value="##Generated file - do not modify!"/>
      <propertyfile file="apropfile.properties" comment="${header}">
        <entry key="product.version.major" type="int"  value="5"/>
        <entry key="product.version.minor" type="int"  value="0"/>
        <entry key="product.build.major"   type="int"  value="0" />
        <entry key="product.build.minor"   type="int"  operation="+"/>
        <entry key="product.build.date"    type="date" value="now"/>
        <entry key="intSet" type="int" operation="=" value="681"/>
        <entry key="intDec" type="int" operation="-"/>
        <entry key="StringEquals" type="string" value="testValue"/>
     </propertyfile>
   </target>
 

The <propertyfile> task must have:

  • file
Other parameters are:
  • comment
  • key
  • operation
  • type
  • value (the final four being eliminated shortly)

The <entry> task must have:

  • key
Other parameters are:
  • operation
  • type
  • value
  • default
  • unit

If type is unspecified, it defaults to string.

Parameter values:
operation:
  • "=" (set -- default)
  • "-" (dec)
  • "+" (inc)
type:
  • "int"
  • "date"
  • "string"
value:
  • holds the default value, if the property was not found in property file
  • "now" In case of type "date", the value "now" will be replaced by the current date/time and used even if a valid date was found in the property file.

String property types can only use the "=" operation. Int property types can only use the "=", "-" or "+" operations.

The message property is used for the property file header, with "\\" being a newline delimiter character.