Q:

Does grails have an `ant -s` analog? 

I'd like to be able to run grails from anywhere in the directory tree. 

A:

If there is no such option, you could create a bugreport to introduce such a parameter.  
As a workaround, you could create a build.xml wrapping the grails commands in your projects and build your project using this wrapper.  Griffon did auto-generate such a wrapper build.xml in early versions.  It could look like
<project name="Foo" default="test">

    <!--  =================================
          target: clean
         ================================= -->
    <target name="clean" description="--> Cleans a Grails application">
        <grails>
            <arg value="clean"/>
        </grails>
    </target>

    <!-- ... -- >

    <!--  set up the grails macro -->
    <property environment="env"/>
    <property name="grails.home" value="${env. GRAILS_HOME}"/>
    <property name="jdk.home" value="${env. JAVA_HOME}"/>
    <condition property="grails" value="griffon.bat">
        <os family="windows"/>
    </condition>
    <property name="grails" value="grails" />
    <macrodef name="grails">
        <element name="grails-args" implicit="yes"/>
        <sequential>
            <exec executable="${grails.home}/bin/${grails}" failonerror="true">
                <env key="JAVA_HOME" value="${jdk.home}"/>
                <env key="GRAILS_HOME" value="${grails.home}"/>
                <grails-args/>
            </exec>
        </sequential>
    </macrodef>
    <!--  end set up the grails macro -->

</project>

