在 Phing 中提前结束目标

Ending target early in Phing

我正在尝试修改 Phing 脚本,但看不到我认为明显的功能。

Phing 脚本有一个通用的 'confirm' 目标,它在执行的各个阶段检查输入。我想使脚本自动化,以便它可以 运行 无需输入。我希望能够通过在目标中插入某种 <break><end> 类型的任务来做到这一点,以便它尽早 returns。 manual 似乎没有列出此类功能。

我知道我可以通过创建一个中间目标来实现这一点,首先检查 cmd 行参数,然后调用确认目标,但是有没有更优雅的方法?

这是需要自动化并从多个地方调用的目标。跳过的触发器将是通过 cmd 行 -D.

设置的 属性
 <!-- confirm a user action -->
<target name="confirm">
    <input propertyname="confirm" validargs="yes,no">
        ${confirm.message} ('yes' to continue)
    </input>
    <if>
        <not>
            <equals arg1="${confirm}" arg2="yes" />
        </not>
        <then>
            <fail message="You didn't say 'yes'" />
        </then>
    </if>
</target>

出于同样的目的,我正在使用这项技术:

<if>
  <not>
    <isset property="confirm" />
  </not>
  <then>
    <input propertyname="confirm" validargs="yes,no">
        ${confirm.message} ('yes' to continue)
    </input>
    <if>
        <not>
            <equals arg1="${confirm}" arg2="yes" />
        </not>
        <then>
            <fail message="You didn't say 'yes'" />
        </then>
    </if>
  </then>
</if>

然后你可以执行

phing build.xml -Dconfirm=yes

没有提示。