0

我有如下要求。我有一个 .properties 文件(名称=值对),我正在从中读取几个属性。我想检查一个特定的属性是否存在。我收到if doesn't support the "name" attribute以下代码的错误。其中 JavaProjectName,projDir 是从 .properties 文件中获取的名称。

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

你能告诉我我在哪里做错了吗?

4

1 回答 1

2

先阅读任务文件<if>它不支持你写的方式。

它应该是:

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

但是,您希望在之前设置了importJavaProject另一个属性时设置一个属性JavaProjectName(在构建文件中或在导入的属性文件中)。那么,如果JavaProjectName没有设置呢?

您应该考虑一个<else>部分,或者使构建失败。

如果您只想检查是否存在并在构建不存在时失败,只需使用<fail>

<fail unless="JavaProjectName"/>

还要检查Condition任务和“支持的条件”


添加:

还要更仔细地阅读评论中 ManMohan 发布的问题。对于“检查 .properties 文件中的属性是否存在”,该问题的可接受答案会检查“属性是否已设置”和“其值是否为空”。

于 2013-05-22T07:37:20.910 回答