我有如下需求。我有一个。properties文件(与名称=值对)从中我正在阅读一对属性。我想检查一个特定的属性是否存在。我得到的错误与if doesn't support the "name" attribute
以下代码。其中JavaProjectName,projDir是从.properties文件中获取的名称。
<if name="${JavaProjectName}" exists="true">
<property name="importJavaProject" value="${projDir}/${JavaProjectName}"/>
</if>
你能告诉我我哪里做错了吗
先读取<if>
任务的文档。它不支持你写的方式。
应该是:
<if>
<isset property="JavaProjectName" />
<then>
<property name="importJavaProject" value="${projDir}/${JavaProjectName}"/>
</then>
</if>
但是,当另一个属性JavaProjectName
已经设置(在构建文件中或在导入的属性文件中)时,您希望设置一个属性importJavaProject
。那么,如果没有设置JavaProjectName
呢?
您应该考虑<else>
部分,否则构建失败。
如果你只是想检查是否存在,当它不存在时失败构建,只需使用<fail>
:
<fail unless="JavaProjectName"/>
同时检查Condition
任务和"支持条件"。
添加:
还要更仔细地阅读曼莫汉在评论中发布的问题。对于"检查.properties文件中的属性是否存在",该问题的可接受答案检查"是否已设置属性"one_answers"其值是否为空"。