文件匹配':patternSet {包含:[索引_ * .xml]的非法值排除:[]}

时间:2015-02-23 12:57:04

标签: ant

我必须搜索给定的字符串" OK"从文件索引_ * .xml。此*是随机生成的Id。此文件在每15秒后生成

这是我到目前为止所做的,但我得到的例外是#34;文件匹配':patternSet {包含:[索引_ * .xml]的非法值排除:[]}"

<?xml version="1.0" encoding="UTF-8"?>
<project name="StringSearch" default="wait-for-some-time" basedir=".">
    <patternset id="filematch">
<include name="Index_*.xml"/>
</patternset>   
<target name="wait-for-some-time">
<waitfor maxwait="15" maxwaitunit="second" timeoutproperty="notfound">
    <resourcecontains refid="filematch" substring="OK" />
</waitfor>
<antcall target="success" />
</target>
<target name="success" depends="fail" unless="notfound">
    <echo message="String OK found" />
</target>
<target name="fail" if="notfound">
    <echo message="String not found" />
</target>
</project>

这里有什么错误的建议,如果不可行,可能是另一种方法。 感谢

新代码: 使用这个

<path id="pathtoIndexfile">
    <fileset dir="${destination.dir}">
         <include name="Index_*.xml"/>
    </fileset>
  </path>

<target name="wait-for-some-time">          
    <echo>${destination.dir}</echo>
    <waitfor maxwait="1" maxwaitunit="minute" timeoutproperty="notfound">
    <resourcecontains refid="pathtoIndexfile" substring="OK" />     
    </waitfor>
    <antcall target="success" />            
</target>

1)异常是&#34; java.lang.ClassCastException:org.apache.tools.ant.types.Path无法强制转换为org.apache.tools.ant.types.Resource&#34;。
2)对于fileSet,异常是&#34; java.lang.ClassCastException:org.apache.tools.ant.types.FileSet无法强制转换为org.apache.tools.ant.types.Resource&#34;

我错过了一些罐子吗?

1 个答案:

答案 0 :(得分:0)

我通过以下两个步骤实现了解决方案:

  1. 步骤1:将index _ * .xml文件复制到output.xml文件
  2. 步骤2:在output.xml文件中搜索确定
  3. 我的即兴代码,用于搜索字符串&#34; OK&#34;是

    <target name="StringSearch">
        <sleep seconds="10"/>
        <copy tofile="${destination.dir}/output.xml">
                <fileset dir="${destination.dir}">
                    <include name="Index_*.xml"/>
                </fileset>
            </copy>
        <sleep seconds="10"/>
        <echo>destination.dir is: ${destination.dir}</echo>
        <loadfile property="OK.exists" srcfile="${destination.dir}/output.xml">
            <filterchain>
                <linecontainsregexp>
                    <regexp pattern="OK"/>
                </linecontainsregexp>
            </filterchain>
        </loadfile>
        <echo>OK exists: ${OK.exists}</echo>
    </target>