2013-03-05 79 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