我正试图在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>