ant - 如果不支持“name”属性

时间:2013-05-22 06:07:32

标签: ant ant-contrib

我要求如下。 我有一个.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>
你可以告诉我我在哪里做错了。

1 个答案:

答案 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文件中的属性是否存在”,该问题的接受答案将检查“属性是否已设置”和“其值是否为空”。