背景:
我有一个构建过程,它编译java代码并使用编译的类构建两个jar(每个jar都是一个不同的子集,其中一些类出现在两者中)。
现在,我要求用户能够单独构建每个jar,但也能够并行构建它们(因为它会大量减少总构建时间)。
所以我想出了一个像这样结构的脚本:
border-radius
问题在于,当使用“all-jars”目标时,“compile”目标会被执行两次。有什么标准方法可以预防吗?更好的是,是否有使用antcall的替代方案?
P.S。我找到a similar question here但没有给出答案。
答案 0 :(得分:1)
只需在目标“编译”中使用unless
属性,如下所示:
...
<target name="compile" unless="compileDone">
<property name="compileDone" value="true"/>
<sequential>
<echo message="compile"/>
</sequential>
</target>
...
您的目标只会执行一次:o)