Ant将文件列表均匀地复制到多个文件夹中



我正在使用ant来驱动一些测试自动化。我有一个扁平的文件夹,里面有大约100个相同类型的文件。我希望将这些文件均匀地分布在4个文件夹中,以便在几台机器上分散执行。因此,该项目将创建四个文件夹,然后遍历100个文件,将一个文件传递到另一个文件夹,然后继续进行。文件1到文件夹1,文件2到文件夹2,文件3到文件夹3,文件4到文件夹4,文件5到文件夹1,等等。文件的名称和数量会有所变化。我可以编写一个小实用程序来完成此操作,但如果我可以将此作为ant执行的一部分,则维护起来会更简单。

下面的例子使用了groovy ANT任务,它可以很好地集成到ANT构建中:

<project name="demo" default="distribute">
    <target name="bootstrap">
        <mkdir dir="${user.home}/.ant/lib"/>
        <get dest="${user.home}/.ant/lib/groovy-all.jar" src="http://search.maven.org/remotecontent?filepath=org/codehaus/groovy/groovy-all/2.1.0-beta-1/groovy-all-2.1.0-beta-1.jar"/>
    </target>
    <target name="distribute">
        <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"/>
        <fileset id="srcFiles" dir="build/src" includes="*.txt"/>
        <groovy>
            def i = 0
            project.references.srcFiles.each {
                ant.copy(file:it, todir:"build/dir/${i % 4}", verbose:true)
                i++
            }
        </groovy>
    </target>
</project>

指出:

  • 使用模数操作将ANT文件集中的文件分发到不同的目录
  • "bootstrap"目标用于从Maven Central
  • 下载和安装第三方任务jar

相关内容

  • 没有找到相关文章

最新更新