如果不支持"name"属性



我有如下需求。我有一个。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"其值是否为空"。

相关内容

  • 没有找到相关文章

最新更新