有没有办法为自定义 ANT 任务和类型标记必需和可选的属性/嵌套元素?
我正在考虑 Spring IOC 中的 @Required 注释之类的东西。至少对于任务而言,在实际执行任务之前验证是否已设置所有必需的属性应该相当容易。
提前致谢。
编辑: 我知道在 execute() 中手动验证属性并抛出 BuildExceptions 的可能性,但我认为基于注释进行自动验证会更方便。
目前 Ant 没有提供一种方法来“标记”一个属性以进行验证。您需要手动检查它们。
至少对于任务而言,在实际执行任务之前验证是否已设置所有必需的属性应该相当容易。
不会。在 Ant 中,可以在运行期间生成许多属性——一个任务输出一个属性,另一个任务使用它。任务以这种<condition>
方式工作——您设置输出属性的名称,任务将设置值。
尽管某些工具/IDE 可以静态解析构建文件并在尚未设置任何属性时警告您,但它们无法仅通过检查 XML 来知道任务是否会输出属性。
在您的自定义任务的 execute() 方法的主体中,您可以验证您需要的属性。您可以抛出异常以报告验证失败。这篇文章展示了一个完整的例子。