2013-05-22 35 views
0

我有一個要求,如下所示。 我有一個.properties文件(名稱=值對),我從中讀取幾個屬性。 我想檢查一個特定的屬性是否存在。 對於以下代碼,我得到if doesn't support the "name" attribute的錯誤。 其中JavaProjectName,projDir是從.properties文件獲取的名稱。螞蟻 - 如果不支持「名稱」屬性

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

你能告訴我我在哪裏做錯了。

+0

possibkle duplicate http://stackoverflow.com/questions/9207680/how-to-check-if-a-property-has-value-in-ant –

+0

我不檢查空值,我想檢查.properties文件中存在屬性 – Thiru

+0

檢查isset標籤中的帖子... –

回答

2

閱讀the document<if>任務第一。它不支持你寫的方式。

它應該是:

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

但是,你要設置屬性​​當其他財產JavaProjectName之前已經設置(在生成文件或在屬性文件中導入)。那麼,如果JavaProjectName尚未設置呢?

您應該考慮<else>零件,否則構建失敗。

如果你只是想檢查它是否存在,並不能當它不存在的構建,只需使用<fail>

<fail unless="JavaProjectName"/> 

還要檢查Condition任務和"Supported conditions"


增加:

而且讀取辛格在發佈註釋更仔細的問題。對於「檢查.properties文件中的屬性存在」,該問題的接受答案將同時檢查「屬性是否已設置」和「值是否爲空」。

+0

http://ant-contrib.sourceforge.net/tasks/tasks/if.html – Vadzim

+0

@Vadzim謝謝,補充〜 – coolcfan

+0

感謝coolcfan的回答。但它不適用於我。我知道閱讀文件好。我已經看到這段代碼在一些額外的螞蟻任務的地方。我的要求如下 – Thiru