Ant - 当目录不存在时跳过任务

时间:2015-01-29 11:23:15

标签: ant javac

我有一组项目,使用“父”项目的构建文件。一切正常,直到每个项目包含 test 目录。 现在我有一个新项目,还没有测试,所以如果 test 目录不存在,我想不运行 tests 任务。 (原始脚本失败并显示srcdir "C:\.jenkins\jobs\Cenne Papiry\workspace\test" does not exist!。) 我只是在 test 目录存在时才尝试设置 test.src 属性:

<available file="test" property="test.src" value="test"/>

并根据 test.src 属性确定测试任务:

<target name="tests" depends="compile-tests" if="test.src">

test.scr 属性未设置,但 ant 仍尝试执行 tests 任务:

C:\Users\vackova\workspace\commons-agata\build.xml:246: srcdir attribute must be set!

<javac target="1.8" debug="true" srcdir="${test.src}" destdir="${class.dir}" encoding="UTF-8" >

我如何实现目标?

1 个答案:

答案 0 :(得分:0)

您的代码是正确的,应该适用于大多数ant版本。这是一个独立运行的测试代码段,在ant 1.7.1和1.9.4中进行了测试:

<project name="bar" default="tests" basedir=".">

    <available file="foo" property="test.src" value="anything"/>

    <target name="tests" if="test.src">
        <echo message="folder or file foo exists"/>
    </target>
</project>