Conditional Task Execution with Ant
I'm trying to conditionally include my test jar files based on an Ant property. My problem is that the "if" attribute of the <task> element only accounts for the property being present or not. I'd love to be able to specify:
ant -Denable.cactus=false
But Ant seemingly executes my task if a property is present - so even though the value is false, it still executes. Any ideas? Here's my task:
<target name="copy-test-jars" depends="init" if="enable.cactus"
    description="Copy test-related JAR files to WEB-INF/lib">
    <echo>Copying Cactus, StrutsTestCase and JUnit JARs</echo>
    <mkdir dir="${webapp.target}/WEB-INF/lib"/>
    <!-- Copy jars -->
    <copy todir="${webapp.target}/WEB-INF/lib">
        <fileset dir="${strutstestcase.dir}" includes="*.jar"/>
        <fileset dir="${cactus.dir}">
            <include name="*.jar"/>
            <exclude name="commons-logging.jar"/>
            <exclude name="log4j-*.jar"/>
            <exclude name="servlet.jar"/>
        </fileset>
        <fileset dir="${env.ANT_HOME}/lib" includes="junit.jar"/>
        <fileset dir="${env.ANT_HOME}" includes="junit-noframes.xsl"/>
    </copy>
</target>
BTW, this XML was made web-savvy by the E2 Source Code Formatter - a must-have bookmark. I got this tip from The FuzzyBlog!.



Posted by Danno Ferrin on January 15, 2003 at 10:50 PM MST #
Posted by Erik Hatcher on January 16, 2003 at 01:17 PM MST #
Posted by Matt Raible on January 16, 2003 at 01:34 PM MST #
Posted by Matt Raible on January 16, 2003 at 02:35 PM MST #
Posted by Anonymous on January 17, 2003 at 12:08 PM MST #
Posted by 155.70.39.45 on February 09, 2007 at 01:41 PM MST #