The new collection of ant tasks from http://ant-contrib.sourceforge.net/ comes with some usefull and interesting tasks, that one will found handy when making a build file:

Among those tasks the following ones helped me a lot :

Variable:
<var name=”osfamily” value=”win”/>
use it as a property:
<echo message=”${osfamily}”/>

another cool feature is overriding properties through parameter unset=”true”
having property x:
<property name=”x” value=”aaa”>
you can overwrite it with:
<var name=”x” value”bbb” unset=”true”>
and use it as a normal property:
<echo message=”new value of x is ${x}”>

osfamily

Can detect various os, possible values include “unix”, “dos”, “mac”, “os/2”, “os/400”, “z/os”, “tandem” and “windows”.
        <osfamily property=”os.family”/>
<echo message=”os: ${os.family}”/>
if

<if>
<equals arg1=”${os.family}” arg2=”windows”/ >
<then>

</then>
<else>

</else>
</if>

antcallback
AntCallBack is identical to the standard ‘antcall’ task, except that it allows properties set in the called target to be available in the calling target.

<target name=”init-db”depends=”init”>
<var name=”databaseURL” value=”url_1″/>
<var name=”databaseDriver” value=”driver_1″/>
</target>

<target name=”install” depends=”init”>
<antcallback target=”init-db” return=”databaseURL” />
<echo message=”foreign prop: databaseURL = ${databaseURL}”/>
</target>
you can use ${databaseURL} as if it was defined localy. This combined with task gives you complete control of
variable throught out your script.

Propertycopy

Have you ever wished to do something like ${${prop_name}_postfix}, you can do it now like this

<property name=”database_type” value=”mssql”/>
<property name=”mssql_databaseDialect” value=”net.sf.hibernate.dialect.SQLServerDialect”/>
<propertycopy name=”databaseDialect” from=”${database_type}_databaseDialect” />
<echo message=”databaseDialect: ${databaseDialect}” />

Shellscript
It is an extension of the “exec” task, and as such, supports the same attributes.
<shellscript shell=”sh” dir=”.”>
chmod +x ${deploy.dir}file.sh
</shellscript>

or

<shellscript shell=”sh” dir=”.”>
file.sh arg1
</shellscript>

Other cool features like:

Logic Tasks( if, for,foreach, outoutdate, runTarget, switch etc),

Network Tasks (HTTP Post, AntServer / RemoteAnt)

Performance Monitoring and Tasks( Performance Monitor, Stopwatch )
Platform Tasks (Osfamily, Shellscript)

Property Tasks (Math, Propertycopy, SortList, URLEncode, Variable )
Process Tasks (Forget, Limit )
Other Tasks (antclipse, IniFile, VerifyDesign )

can be explored at http://ant-contrib.sourceforge.net/tasks/tasks/index.html

Another special task is CC Task – Compile and link task.

cc Task – can compile various source languages and produce executables, shared libraries (aka DLL’s) and static libraries. Compiler adaptors are currently available for several C/C++ compilers, FORTRAN, MIDL and Windows Resource files.
for more info check http://ant-contrib.sourceforge.net/cc.html

4 responses to “New ant tasks from ant-contrib library

Leave a Comment:

Your email address will not be published. Required fields are marked *