これを単純化したい:
<target name="build">
<parallel>
<antcall target="build-A" />
<antcall target="build-B" />
<antcall target="build-C" />
</parallel>
</target>
<target name="build-A">
<exec executable="tool.exe" dir="projects/A">
<arg value="input.xml" />
</exec>
</target>
wherebuild-B
とbuild-C
はまったく同じことを行い (それぞれ dirsB
とC
でのみ)、これに似たものにします:
<dirset id="projects" dir="." >
<include name="projects/*" />
</dirset>
<apply executable="tool.exe" parallel="true">
<arg value="input.xml" />
<dirset refid="projects" />
</apply>
apply
次のいずれかを実行するため、これは機能しません。
parallel
が に設定されている場合true
、
tool.exe input.xml projects/A projects/B projects/C
またはparallel
が に設定されている場合false
、
tool.exe projects/A/input.xml
...waits for tool.exe to complete...
tool.exe projects/B/input.xml
...etc
ディレクトリ内でtool.exe
実行されることを期待しているため、それも正しくありません。projects/A
私が得る出力が以下と同等になるようにこれを並列化する方法はありますか?
cd project/A
tool.exe input.xml
cd ../B
tool.exe input.xml
cd ../C
tool.exe input.xml
しかし、並行して?