如何检查未展开的Ant属性

时间:2017-09-15 11:50:56

标签: java ant

我有一个属性文件,用户可以在其中自由选择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是不是更好的解决方案?

1 个答案:

答案 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>