There is a lot of information available on how to call Ant from Maven2 scripts, but very little on the reverse operation. As it happens, this is actually quite simple to manage - Maven2 is a Java app, so it can be executed by simply using the Java task from inside your Ant script with the correct classpath, Main class name and arguments. The following snippit will do this for the simple case:
CODE:
<target name="execute_maven">
<java classname="org.codehaus.classworlds.Launcher"
fork="yes"
failonerror="true">
<arg value="${maven.target}" />
<sysproperty key="classworlds.conf" value="${maven.home}/bin/m2.conf" />
<sysproperty key="maven.home" value="${maven.home}" />
<classpath>
<pathelement location="${maven.home}/boot/classworlds-1.1.jar" />
</classpath>
</java>
</target>
Note that this depends on the property "maven.home" being set correctly, and when called it will require the "maven.target" parameter to be supplied. "maven.home" will likely be set in build.properties or similar, and calling it is as simple as
CODE:
<antcall target="execute_maven">
<param name="maven.target" value="install" />
</antcall>