我需要用户在编译时定义一个变量,我仍然必须决定它是否是一个环境变量或属性(ant -Dname=value
)。如果在Ant中没有定义一个变量会引发一个错误
如果变量未被用户定义,如何在编译时产生错误?
我需要用户在编译时定义一个变量,我仍然必须决定它是否是一个环境变量或属性(ant -Dname=value
)。如果在Ant中没有定义一个变量会引发一个错误
如果变量未被用户定义,如何在编译时产生错误?
对于第一个问题:
如果变量是指该应用程序的外部环境特定的条件下,然后使它的环境(OS)的变量。否则,使它成为一个财产。很显然,这并不能完全回答你的问题,因为你仍然需要确定它的含义(对于你的应用或系统)来说一个变量是环境特定的。
另一位导游会问自己是否可以(或必须)依赖于同一变量的不同值的多个应用程序,都可能被部署在同一系统上。在这种情况下,我们不能使用环境变量,只有基于属性的变量才是唯一的方法。
对于第二个问题:
使用Ant的内置Fail的任务,如果条件或属性未设置中止构建。从蚂蚁的上失败任务的文档,你可以,如果你使用基于属性变量得到关于如何去做一个想法:如果你决定使用环境变量
<fail>
<condition>
<not>
<isset property="thisdoesnotexist"/>
</not>
</condition>
</fail>
,你只需使用物业任务的环境属性进军环境(OS),变量就如同他们是生成属性(请参阅applicable documentation的例子。)
希望它有帮助。
只需添加:
<fail unless="var1" message="var1 is not set"/>
如果var1
未设置构建就会失败。
+1并接受,正是我所期待的。另外,对于坏的英语感到抱歉,但关于env和财产的第一个声明并不是真正的问题,而是一些额外的信息。 ;) – 2011-03-28 15:48:16