如果未在Ant中定义变量,则引发错误

时间:2011-03-28 15:31:44

标签: ant

我需要用户在编译时定义变量,我仍然需要确定它是环境变量还是属性(ant -Dname=value)。

如果用户没有定义变量,如何在编译时引发错误?

2 个答案:

答案 0 :(得分:20)

只需添加:

<fail unless="var1" message="var1 is not set"/>

如果未设置var1,则构建将失败。

答案 1 :(得分:9)

对于第一个问题:

如果变量是针对应用程序之外的特定于环境的条件,则将其设置为环境(OS)变量。否则,将其作为财产。显然,这并不能完全回答您的问题,因为您仍然必须确定(对于您的应用或系统)说变量是特定于环境的的含义。

另一个指南是问自己是否可以(或将要)多个依赖于同一变量的不同值的应用程序,所有这些都可能部署在同一系统上。在这种情况下,我们不能使用环境变量,基于属性的变量是唯一的方法。

关于第二个问题:

如果未设置条件或属性,请使用Ant的内置 Fail 任务中止构建。从Ant的 失败 任务的文档中,如果您使用基于属性的变量,您可以了解如何进行此操作:

  <fail>
     <condition>
       <not>
         <isset property="thisdoesnotexist"/>
       </not>
     </condition>
   </fail>

如果您决定使用环境变量,只需使用 属性 任务的 环境 属性利用环境(OS)变量就像它们是构建属性一样(请参阅applicable documentation作为示例。)

希望它有所帮助。