この答えをチェックしてください:
異なるディレクトリの異なるantスクリプトで特定のターゲットを実行する
ログ解析ロジックを複製するのではなく、サブモジュールビルドでエラーをスローすることをお勧めします。
アップデート
これがデプロイメントをサポートするように設計されている場合、おそらくGroovyスクリプトを検討する必要がありますか?例外条件をより適切にサポートします:
def ant = new AntBuilder()
scanner = ant.fileScanner {
fileset(dir:".", includes:"test*/build.xml")
}
scanner.each { f ->
try {
ant.ant(antfile:f)
}
catch (e) {
ant.mkdir(dir:"backup")
ant.move(todir:"backup", file:f.parent)
}
}
Groovyは優れたANT統合を備えており、ANTビルドに組み込むこともできます。
<target name="run">
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy" classpathref="build.path"/>
<fileset id="buildFiles" dir="." includes="test*/build.xml"/>
<groovy>
project.references.buildFiles.each {
def f = new File(it.toString())
try {
ant.ant(antfile:f)
}
catch(e) {
ant.mkdir(dir:"backup")
ant.move(todir:"backup", file:f.parent)
}
}
</groovy>
</target>