我正在寻找一种方法告诉NAnt 不执行指定的目标。我没有在网上找到任何东西所以我没有希望,但也许SO的好人可以提供帮助。
情况是:我们有目标A, B, C, D,
以及调用所有其他目标的总体目标T
。 A
独立于其他人,因此并非真正必要;认为这是一种昂贵的理智检查。
我希望能够运行T
但排除A
- 所以它只会运行B, C, D
。
这是可能的,还是我必须声明一个新的目标来专门运行这些工作?
答案 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
表达式,但我还没有对其进行测试。