Ant-驱动属性值的多个条件



我正试图在Ant检查目标中添加多个AND条件来设置属性。我想根据正在设置的属性执行某些操作。

<target name="checkVal">
    <condition property="val.present">
        <and>
            <available file="${srcDir}/somefile"/>
            <matches pattern="MyClass.java" string="${pathString}"/>
        </and>
    </condition>
    <fail message="Failing the condition."/>
</target>
<target name="doSomething" depends="checkVal" if="val.present">
    ...
</target>

如果属性val.present是由<and>块内的2个条件设置的,则意图是执行"doSomething"。一个条件检查文件是否可用,另一个条件则检查路径字符串是否包含特定的源文件。

我总是收到失败的消息。

但以下方法有效:

<target name="checkVal">
    <available file="${srcDir}/somefile" property="val.present"/>
</target>
<target name="doSomething" depends="checkVal" if="val.present">
    ...
</target>

有人能告诉我怎样才能纠正这个错误吗?

在我用contains任务替换matches任务后,它就工作了。

<target name="checkVal">
    <condition property="val.present">
        <and>
            <available file="${srcDir}/somefile"/>
            <contains substring="MyClass.java" string="${srcDir}"/>
        </and>
    </condition>    
</target>

相关内容

  • 没有找到相关文章

最新更新