是否可以从NAnt构建中排除目标?

时间:2013-12-17 14:58:41

标签: nant

我正在寻找一种方法告诉NAnt 执行指定的目标。我没有在网上找到任何东西所以我没有希望,但也许SO的好人可以提供帮助。

情况是:我们有目标A, B, C, D,以及调用所有其他目标的总体目标TA独立于其他人,因此并非真正必要;认为这是一种昂贵的理智检查。

我希望能够运行T但排除A - 所以它只会运行B, C, D。 这是可能的,还是我必须声明一个新的目标来专门运行这些工作?

2 个答案:

答案 0 :(得分:0)

我正以非常简单的方式思考。你的情况可能会有所不同。

我会让T仅依赖于B,C和D.

如果还需要A,我可以通过以下形式调用:

NAnt buildfile:Blah.build A T

答案 1 :(得分:0)

如果要排除的目标位于链的开头或结尾,@ NotAgain的答案很有用,但它确实涉及设置新目标,或者至少编辑现有目标。

到目前为止,我发现的最佳解决方案是使用条件逻辑表达式。 例如:

<property name="runThis" value="true" />
<target name="runIfPropTrue" if="${runThis}">
    <exec program="test.bat" />
</target>

通过这种方式,您可以设置您可能希望排除的任何目标,并通过编辑属性或将其作为参数传入来打开和关闭它们。 我假设您可以轻松使用unless表达式,但我还没有对其进行测试。