0

テストの自動化を推進するために ant を使用しています。同じ種類のファイルが約 100 個あるフラットなフォルダーがあります。これらのファイルを 4 つのフォルダーに均等に分散させて、実行を数台のマシンに分散させたいと考えています。そのため、プロジェクトは 4 つのフォルダーを作成し、100 個のファイルを実行して 1 つのファイルをフォルダーに渡し、処理を続行します。ファイル 1 はフォルダ 1、2 から 2、3 から 3、4 から 4、5 から 1 などに移動します。ファイルの名前と数は変動します。これを行うための小さなユーティリティを作成することはできますが、ant 実行の一部としてこれを行うことができれば、メンテナンスがより簡単になります。

4

1 に答える 1

0

次の例では、ANTビルドに非常によく統合されているGroovyANTタスクを使用しています。

<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>

ノート:

于 2013-01-08T21:57:37.450 に答える