我要求如下。
我有一个.properties文件(带有name = value对),我从中读取了几个属性。
我想检查一个特定的属性是否存在。
我收到if doesn't support the "name" attribute
的错误以获取以下代码。
其中JavaProjectName,projDir是来自.properties文件的名称。
<if name="${JavaProjectName}" exists="true">
<property name="importJavaProject" value="${projDir}/${JavaProjectName}"/>
</if>
你可以告诉我我在哪里做错了。
答案 0 :(得分:2)
首先阅读<if>
任务的the document。它不支持你写的方式。
应该是:
<if>
<isset property="JavaProjectName" />
<then>
<property name="importJavaProject" value="${projDir}/${JavaProjectName}"/>
</then>
</if>
但是,如果之前已设置了另一个属性importJavaProject
(在构建文件或导入的属性文件中),则需要设置属性JavaProjectName
。那么,如果没有设置JavaProjectName
怎么办?
您应该考虑<else>
部分,或者无法构建。
如果你只是想检查是否存在而在构建不存在时失败,只需使用<fail>
:
<fail unless="JavaProjectName"/>
同时检查Condition
任务和"Supported conditions"。
增加:
另请仔细阅读ManMohan在评论中发布的问题。对于“检查.properties文件中的属性是否存在”,该问题的接受答案将检查“属性是否已设置”和“其值是否为空”。