2013-03-05 24 views
1

是否有任何方法來標記自定義ANT任務和類型的必需和可選屬性/嵌套元素?自定義ANT任務:標記所需的屬性/嵌套元素

我想到了Spring IOC中的@Required註解。至少對於任務來說,在實際執行任務之前驗證所有必需的屬性已被設置是相當容易的。

在此先感謝。

編輯: 我知道手工驗證在執行性質()並拋出BuildExceptions的可能性,但我認爲這將是已經基於註釋自動驗證更方便。

+1

不需要。您需要手動檢查它們。 – coolcfan 2013-03-06 03:01:02

+0

似乎是這樣簡單但正確的答案......您可能想將它添加爲答案,以便我可以接受它? – 2013-04-10 07:54:32

回答

1

目前Ant並未提供「標記」屬性進行驗證的方法。你需要手動檢查它們。

至少對任務應該是很容易驗證所有需要的屬性實際上已經在執行任務之前被設置。

不。在Ant中,許多屬性可以在運行過程中生成 - 一個任務輸出一個屬性,另一個任務使用它。 <condition>任務以這種方式工作 - 您設置輸出屬性的名稱,任務將設置該值。

雖然有些工具/ IDE可以靜態分析構建文件,並警告您如果尚未設置任何屬性,他們無法知道任務是否僅通過檢查XML來輸出屬性。

+0

好吧,所以目前似乎沒有默認的方式來進行這種驗證。關於最後一段:我真的不想驗證XML配置,但在實際執行我的任務之前驗證運行時的某些屬性。 – 2013-04-11 08:14:31

+0

螞蟻不提供這樣的功能。似乎唯一的辦法是手動使用''。 Ant爲您提供了一些界面來擴展:'BuildLogger','BuildListener',甚至自定義的'Project'&'Main'。如果您確實需要這樣的功能,請深入研究Ant Java文檔和源代碼......在最好的情況下,您可以使用'BuildListener'來處理'taskStarted'事件。但我不確定... – coolcfan 2013-04-11 08:28:23

0

在自定義任務的execute()方法的主體中,可以驗證所需的屬性。您可以拋出異常來報告驗證失敗。 This post顯示了一個完整的例子。

+0

是的,我知道如何手動驗證我的屬性。對不起,如果這不是從我原來的問題清楚。 – 2013-03-06 09:07:06