2013-05-22 33 views
0

我有一个要求,如下所示。 我有一个.properties文件(名称=值对),我从中读取几个属性。 我想检查一个特定的属性是否存在。 对于以下代码,我得到if doesn't support the "name" attribute的错误。 其中JavaProjectName,projDir是从.properties文件获取的名称。蚂蚁 - 如果不支持“名称”属性

<if name="${JavaProjectName}" exists="true"> 
<property name="importJavaProject" value="${projDir}/${JavaProjectName}"/> 
</if> 

你能告诉我我在哪里做错了。

+0

possibkle duplicate http://stackoverflow.com/questions/9207680/how-to-check-if-a-property-has-value-in-ant –

+0

我不检查空值,我想检查.properties文件中存在属性 – Thiru

+0

检查isset标签中的帖子... –

回答

2

阅读the document<if>任务第一。它不支持你写的方式。

它应该是:

<if> 
    <isset property="JavaProjectName" /> 
    <then> 
     <property name="importJavaProject" value="${projDir}/${JavaProjectName}"/> 
    </then> 
</if> 

但是,你要设置属性​​当其他财产JavaProjectName之前已经设置(在生成文件或在属性文件中导入)。那么,如果JavaProjectName尚未设置呢?

您应该考虑<else>零件,否则构建失败。

如果你只是想检查它是否存在,并不能当它不存在的构建,只需使用<fail>

<fail unless="JavaProjectName"/> 

还要检查Condition任务和"Supported conditions"


增加:

而且读取辛格在发布注释更仔细的问题。对于“检查.properties文件中的属性存在”,该问题的接受答案将同时检查“属性是否已设置”和“值是否为空”。

+0

http://ant-contrib.sourceforge.net/tasks/tasks/if.html – Vadzim

+0

@Vadzim谢谢,补充〜 – coolcfan

+0

感谢coolcfan的回答。但它不适用于我。我知道阅读文件好。我已经看到这段代码在一些额外的蚂蚁任务的地方。我的要求如下 – Thiru