背景: Java コードをコンパイルし、コンパイルされたクラスを使用して 2 つの jar をビルドするビルド プロセスがあります (各 jar は異なるサブセットであり、一部のクラスは両方に表示されます)。
ここで、ユーザーが各 jar を個別にビルドできるだけでなく、並行して一緒にビルドできるようにする必要がありました (合計ビルド時間が大幅に短縮されるため)。
そこで、次のような構造のスクリプトを思いつきました。
<project>
<target name="compile">
<sequential>
<echo message="compile"/>
</sequential>
</target>
<target name="jar1" depends="compile">
<sequential>
<echo message="jar1"/>
</sequential>
</target>
<target name="jar2" depends="compile">
<sequential>
<echo message="jar2"/>
</sequential>
</target>
<target name="all-jars">
<parallel>
<antcall target="jar1"/>
<antcall target="jar2"/>
</parallel>
</target>
</project>
問題は、「all-jars」ターゲットを使用すると、「compile」ターゲットが 2 回実行されることです。それを防ぐための標準的な方法はありますか?さらに良いことに、antcall を使用する代わりになる方法はありますか?
PS私はここで同様の質問を見つけましたが、答えはありませんでした。