I use a macrodef for this:
<property environment='env'/>
<property name='grails.home' value='${env.GRAILS_HOME}' />
<condition property='grails' value='grails.bat'>
<os family='windows'/>
</condition>
<property name='grails' value='grails' />
<macrodef name='grails'>
<attribute name='action' />
<attribute name='environment' default='dev' />
<element name='preargs' optional='true' />
<element name='args' optional='true' />
<sequential>
<exec executable='${grails}' failonerror='true'>
<preargs />
<arg value='@{environment}'/>
<arg value='@{action}'/>
<args />
</exec>
</sequential>
</macrodef>
You can execute simple commands:
<grails action='clean' />
or more complex ones like your war task:
<grails action='war' environment='${env}'>
<args>
<arg value="${war.filename}" />
</args>
</grails>