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

And*_*ini 12 ant

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

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

dog*_*ane 20

只需添加:

<fail unless="var1" message="var1 is not set"/>
Run Code Online (Sandbox Code Playgroud)

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


lui*_*nal 9

对于第一个问题:

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

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

对于第二个问题:

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

  <fail>
     <condition>
       <not>
         <isset property="thisdoesnotexist"/>
       </not>
     </condition>
   </fail>
Run Code Online (Sandbox Code Playgroud)

如果您决定使用环境变量,则只需使用Property任务的environment属性来访问环境(OS)变量,就像它们是构建属性一样(请参阅适用的文档以获取示例.)

希望能帮助到你.