Ant遇到未定义属性时能否提前终止?类似Bash的set -u功能
让Ant遇到未定义属性时提前终止(等效Bash的set -u)
可以实现,Ant提供了内置的配置开关来改变未定义属性的处理行为,有两种常用方式:
方式一:命令行启动参数
运行Ant时添加-Dant.property.exception=true参数,示例命令:
ant -Dant.property.exception=true your-target
启用后,只要出现未定义的属性引用,Ant会直接抛出BuildException并终止构建,同时输出明确的“属性未定义”错误提示,不会再静默替换为${foo}。
方式二:构建脚本内全局配置
如果希望所有构建都默认生效,可以在build.xml的最开头(所有任务之前)添加全局属性配置:
<property name="ant.property.exception" value="true" />
这个配置会强制Ant在检测到未定义属性时立即终止构建,效果和命令行参数完全一致。
补充说明
ant.property.exception是Ant原生支持的控制属性:
- 默认值为
false,对应原有的静默替换+DEBUG日志记录行为 - 设置为
true后,完全等效Bash的set -u,只要遇到未定义的变量/属性就终止执行
内容的提问来源于stack exchange,提问作者Mikhail T.
相关产品推荐
相关产品推荐

