我有一个属性文件,用户可以在其中自由选择Ant环境中的任何可用属性。 E.g。::
property.action=${other.property}
但是在运行时我需要知道property.action
实际上已扩展为一个值。但是以下打印' $ {other.property}'如果未设置被引物业,则为三次。
<property name="value" prop="property.action" />
<echo>
1: ${property.action}
2: ${other.property}
3: ${value}
</echo>
在运行时不可能知道用户值包含哪些属性,因此我不能简单地使用isset,if / equals等检查每个属性(我使用ant-contrib)。
我可能会用结果值的正则表达式解决这个问题,检查那里没有变量占位符。但Java / Ant是不是更好的解决方案?
答案 0 :(得分:0)
使用正则表达式是禁食的解决方案,没有。附加脚本::
<propertyregex property="check" select="\1" defaultValue="" input="${value}" regexp=".*(\$\{[A-Za-z0-9_\.-]+\}).*" />
<fail message="User setting failure, unexpanded variable: ${value}">
<condition>
<not><equals arg1="${check}" arg2=""/></not>
</condition>
</fail>