Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins Ant模式用于获取带有时间戳的最新修改的XLSX文件_Jenkins_Ant_Pattern Matching - Fatal编程技术网

Jenkins Ant模式用于获取带有时间戳的最新修改的XLSX文件

Jenkins Ant模式用于获取带有时间戳的最新修改的XLSX文件,jenkins,ant,pattern-matching,Jenkins,Ant,Pattern Matching,如何编写Ant模式以获得带有时间戳的最新修改文件 我的档案是: Testcases_Results_dd-mm-yyyy_hh_mm_ss.xlsx Testcases_Results_dd-mm-yyyy_hh_mm_ss.xlsx Testcases_Results_dd-mm-yyyy_hh_mm_ss.xlsx 在Jenkins中,我已在附件中配置为**/TestResults/Testcases\u Results.*.xlsx 但是我没有得到最新的文件,它正在挑选所有文件。如果您的

如何编写Ant模式以获得带有时间戳的最新修改文件

我的档案是:

Testcases_Results_dd-mm-yyyy_hh_mm_ss.xlsx
Testcases_Results_dd-mm-yyyy_hh_mm_ss.xlsx
Testcases_Results_dd-mm-yyyy_hh_mm_ss.xlsx
在Jenkins中,我已在附件中配置为**/TestResults/Testcases\u Results.*.xlsx
但是我没有得到最新的文件,它正在挑选所有文件。

如果您的最新文件具有最高的
lastmodifieddate
,那么您可以使用

<last>
    <sort>
        <date xmlns="antlib:org.apache.tools.ant.types.resources.comparators"/>
        <resources>
            <fileset dir="/path/to/files/">
                <include name="Testcases_Results_*" />
            </fileset>
        </resources>
    </sort>
</last>
<scriptdef name="getLatesFile" language="javascript">
    <attribute name="result"/>
    <element name="fileset" type="fileset"/>
    <![CDATA[

    fileset = elements.get("fileset").get(0);
    scanner = fileset.getDirectoryScanner(project);
    scanner.scan();
    files = scanner.getIncludedFiles();

    var latestDate = new Date(1970, 0, 1, 0, 0, 0);

    for( j=0; j < files.length; j++) {

        var filename = files[j];
        var dateSuffix = filename.substring("Testcases_Results_".length, filename.indexOf(".xlsx"));
        //dd-mm-yyyy_hh_mm_ss
        var bits = dateSuffix.split(/\D/);
        var date = new Date(bits[2], --bits[1], bits[0], bits[3], bits[4], bits[5]);
        if(date > latestDate) {
            latestDate = date;
            self.project.setProperty( attributes.get("result"), filename );
        }
    }

  ]]>
</scriptdef>

<target name="init">
    <getLatesFile result="latest_file">
        <fileset dir="/path/to/files/">
            <include name="Testcases_Results_*" />
        </fileset>
    </getLatesFile>
    <echo>${latest_file}</echo>
</target>