テストの自動化を推進するために ant を使用しています。同じ種類のファイルが約 100 個あるフラットなフォルダーがあります。これらのファイルを 4 つのフォルダーに均等に分散させて、実行を数台のマシンに分散させたいと考えています。そのため、プロジェクトは 4 つのフォルダーを作成し、100 個のファイルを実行して 1 つのファイルをフォルダーに渡し、処理を続行します。ファイル 1 はフォルダ 1、2 から 2、3 から 3、4 から 4、5 から 1 などに移動します。ファイルの名前と数は変動します。これを行うための小さなユーティリティを作成することはできますが、ant 実行の一部としてこれを行うことができれば、メンテナンスがより簡単になります。
質問する
432 次
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>
ノート:
- モジュラス演算を使用して、ANTファイルセットに含まれるファイルを別のディレクトリに分散します
- 「ブートストラップ」ターゲットは、MavenCentralからサードパーティのタスクjarをダウンロードしてインストールするために使用されます
于 2013-01-08T21:57:37.450 に答える