Ant Contrib等于忽略案例
有没有办法检查两个值是否在任何情况下都相等?例如,myValue等于myValue,大小写不确定Ant Contrib等于忽略案例,ant,ant-contrib,Ant,Ant Contrib,有没有办法检查两个值是否在任何情况下都相等?例如,myValue等于myValue,大小写不确定 <if> <equals arg1="myValue" arg2="myvalue" /> <then> ... </then> </if> 我不认为你能在短时间内做到这一点。但是,您可以添加一个小javascript <script language="javascript">
<if>
<equals arg1="myValue" arg2="myvalue" />
<then>
...
</then>
</if>
我不认为你能在短时间内做到这一点。但是,您可以添加一个小javascript
<script language="javascript">
<![CDATA[
// getting value for myValue
myValue = test.getProperty("myValue");
// TODO add some check here to handle empty property value
// convert to uppercase
valueUpper = myValue.toUpperCase();
// store the result in a new property
test.setProperty("myValue.upper",valueUpper);
]]>
</script>
<if>
<equals arg1="${myValue.upper}" arg2="MYVALUE" />
<then>
...
</then>
</if>
注意:测试引用您的ant项目名称
或者,您可以寻找另一个ant contrib函数propertyRegex。因为我没有找到一个工作实例,如何利用它来把一个字符串转换成上或下的情况,所以我认为JavaScript是更好的选择。 < P>我不认为你能做到这一点。但是,您可以添加一个小javascript
<script language="javascript">
<![CDATA[
// getting value for myValue
myValue = test.getProperty("myValue");
// TODO add some check here to handle empty property value
// convert to uppercase
valueUpper = myValue.toUpperCase();
// store the result in a new property
test.setProperty("myValue.upper",valueUpper);
]]>
</script>
<if>
<equals arg1="${myValue.upper}" arg2="MYVALUE" />
<then>
...
</then>
</if>
注意:测试引用您的ant项目名称
或者,您可以寻找另一个ant contrib函数propertyRegex。因为我没有找到一个工作实例,如何利用它来把一个字符串转换成上或下的情况,所以我认为JavaScript是更好的选择。 < P>我敢打赌,你可以用这个条件来做这件事。该条件可以将字符串与正则表达式进行比较,并且可以不区分大小写。只需将要匹配的字符串设置为正则表达式
就在我的头顶上:
<property name="arg1" value="MY_VALUE"/>
<property name="arg2" value="my_value"/>
<if>
<matches
string="${arg1}"
pattern="^${arg2}$"
casesensitive="false">
<then>
<echo>${arg1} and ${arg2} are the same, but may differ in case</echo>
</then>
</if>
我打赌你可以利用这个条件来做这件事。该条件可以将字符串与正则表达式进行比较,并且可以不区分大小写。只需将要匹配的字符串设置为正则表达式
就在我的头顶上:
<property name="arg1" value="MY_VALUE"/>
<property name="arg2" value="my_value"/>
<if>
<matches
string="${arg1}"
pattern="^${arg2}$"
casesensitive="false">
<then>
<echo>${arg1} and ${arg2} are the same, but may differ in case</echo>
</then>
</if>
ant contrib很烂。它通常会产生很难阅读的意大利面代码,并且需要人们添加ant contrib jar。 你最好让蚂蚁做蚂蚁。。。它不是脚本语言,而是构建步骤的简单声明。如果你想玩得开心,你可以用java编写你自己的任务,在那里你有一个IDE,调试器和单元测试 在ant中,您可以对任务执行此操作,特别是使用casesensitive=false设置属性,然后根据该属性有条件地运行目标。例如,用ant-Darg1=foo-Darg2=foo运行这个家伙 我知道这不能回答你的问题,这是关于ant contrib的。我甚至会进一步误入歧途,说我永远不会制作一个喜欢gradle或maven有趣阅读的新ant文件: 未维护
ant contrib很烂。它通常会产生很难阅读的意大利面代码,并且需要人们添加ant contrib jar。 你最好让蚂蚁做蚂蚁。。。它不是脚本语言,而是构建步骤的简单声明。如果你想玩得开心,你可以用java编写你自己的任务,在那里你有一个IDE,调试器和单元测试 在ant中,您可以对任务执行此操作,特别是使用casesensitive=false设置属性,然后根据该属性有条件地运行目标。例如,用ant-Darg1=foo-Darg2=foo运行这个家伙 我知道这不能回答你的问题,这是关于ant contrib的。我甚至会进一步误入歧途,说我永远不会制作一个喜欢gradle或maven有趣阅读的新ant文件: 未维护 您可以像这样使用casesensitive=false参数:
<if>
<equals arg1="myValue" arg2="myvalue" casesensitive="false" />
<then>
...
</then>
</if>
来源:您可以像这样使用casesensitive=false参数:
<if>
<equals arg1="myValue" arg2="myvalue" casesensitive="false" />
<then>
...
</then>
</if>
来源:进一步研究后,equals不是Ant Contrib的一部分,而是Ant Condition任务的一部分,如您所述。因此,即使我使用Ant Contrib标签,它也是Ant的一部分。默认情况下区分大小写的其他文档点执行区分大小写的比较。默认值为true。进一步研究后,equals不是Ant Contrib的一部分,而是Ant Condition任务的一部分,如您所述。因此,即使我使用Ant Contrib标签,它也是Ant的一部分。默认情况下区分大小写的其他文档点执行区分大小写的比较。默认值为true。很好地使用匹配项,尽管它也能完成工作。很好地使用匹配项,尽管它也能完成工作。