簡體   English   中英

如何檢查未擴展的Ant屬性

[英]How to check for unexpanded Ant properties

我有一個屬性文件,用戶可以在其中自由選擇Ant環境中可用的任何屬性。 例如::

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,沒有更好的解決方案嗎?

使用正則表達式是禁食的解決方案,沒有。 其他腳本:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM