在执行脚本时是否可以从Ant目标中排除某些目标?

时间:2009-10-19 07:14:55

标签: java ant

如果想要执行多个目标,我们可以这样做,

ant target1 target2 target3

其他方式可以是,像

一样创建target4
<target name="target4" depends="target1,target2,target3" />

但问题是,我的目标定义之一是:

<target name="buildApp" depends="init,copy-all-requiredfiles-local,wait-to-merge,compile,createWAR,deployAll"/>

如果我想执行 buildApp 那么它也将运行所有相关目标,这是显而易见的。 是否可以在不执行 deployAll 目标的情况下执行 buildApp 目标?

2 个答案:

答案 0 :(得分:15)

可能会为您的 deployAll 目标添加一个条件。

<target name="depolyAll" unless="doNotDeploy">
...
</target>

然后当您想在命令行上运行 buildApp 而不使用 deployAll 时,只需执行

ant -DdoNotDeploy=true buildAll

顺便说一句。请注意,除非只是检查属性是否已设置。不是什么价值。

但是这种行为应该记录在案,并且有点模糊。

我会考虑明确创建第二个构建目标,例如 buildAllWithoutDeploy ,它只是错过了部署目标

答案 1 :(得分:2)

为什么不为它创建另一个目标?

<target name="buildAppNoDeploy" depends="init,copy-all-requiredfiles-local,wait-to-merge,compile,createWAR"/>