The preset definition generates a new definition based on a current definition with some attributes or elements preset.
since Ant 1.6
| Attribute | Description | Required |
| name | the name of the new definition | Yes |
| uri | The uri that this definition should live in. | No |
The <presetdef> task takes one nested element as a parameter. This nested element can be any other type or task. The attributes and elements that need to be preset are placed here.
<presetdef name="my.javac">
<javac debug="${debug}" deprecation="${deprecation}"
srcdir="${src.dir}" destdir="${classes.dir}">
<src path="${gen.dir}"/>
</javac>
</presetdef>
This can be used as a normal javac task - example:
The attributes specified in the preset task may be overridden - i.e. they may be seen as optional attributes - example:<my.javac/>
<my.javac srcdir="${test.src}" deprecation="no"/>
One may put a presetdef definition in an antlib.
For example suppose the jar file antgoodies.jar has
the antlib.xml as follows:
<antlib>
<taskdef resource="com/acme/antgoodies/tasks.properties"/>
<!-- Implement the common use of the javac command -->
<presetdef name="javac">
<javac deprecation="${deprecation}" debug="${debug}"
srcdir="src" destdir="classes"/>
</presetdef>
</antlib>
One may then use this in a build file as follows:
<project default="example" xmlns:antgoodies="antlib:com.acme.antgoodies">
<target name="example">
<!-- Compile source -->
<antgoodies:javac srcdir="src/main"/>
<!-- Compile test code -->
<antgoodies:javac srcdir="src/test"/>
</target>
</project>
Copyright © 2003 Apache Software Foundation. All rights Reserved.