首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蚂蚁build.xml $$

蚂蚁build.xml $$
EN

Stack Overflow用户
提问于 2014-03-13 18:16:25
回答 1查看 183关注 0票数 0

我有一个Ant build.xml,它进行如下检查,我只是想知道$$意味着什么?

提前谢谢你的帮助。

代码语言:javascript
复制
 <equals casesensitive="false" arg1="${subPlan}" arg2="$${subPlan}"/>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-13 20:02:04

来自ant手册性质与PropertyHelpers

代码语言:javascript
复制
..Ant will expand the text $$ to a single $ and suppress the normal property expansion mechanism..

它经常用于输出,如:

代码语言:javascript
复制
<property name="foo" value="bar"/>

<echo>$${foo} => ${foo}</echo>

产出:

代码语言:javascript
复制
[echo] ${foo} => bar

在您的示例中,它检查在项目中是否设置了一个名为subPlan的属性,如果${subPlan}不存在,它就不会展开。:

代码语言:javascript
复制
<project>
 <property name="subPlan" value="whatever"/>
 <echo>${subPlan}</echo>
</project>

产出:

代码语言:javascript
复制
[echo] whatever

鉴于:

代码语言:javascript
复制
<project>
 <echo>${subPlan}</echo>
</project>

产出:

代码语言:javascript
复制
[echo] ${subPlan}

实际上,可以将属性subPlan的属性值设置为${subPlan}:

代码语言:javascript
复制
<property name="subPlan" value="$${subPlan}"/>

但是这是没有意义的,所以您的代码片段是否进行了合并检查,=>是属性subPlan集,并且有一个有用的值?可以这样使用:

代码语言:javascript
复制
<fail message="Property not set or invalid value !">
 <condition>
  <equals casesensitive="false" arg1="${subPlan}" arg2="$${subPlan}"/>
 </condition>
</fail>

最后,检查属性是否设置的标准方法是使用isset条件,f.e。:

代码语言:javascript
复制
<fail message="Property not set !">
 <condition>
  <not>
   <isset property="subPlan"/>
  </not>
 </condition>
</fail>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22387448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档