问问题
5445 次
4 回答
4
您可以测试 ${destdir} 是否像这样以“spring-beans”结尾(假设您有 ant-contrib,并且使用的是 Ant 1.7 或更高版本)。
<property name="destdir" value="something\spring-beans" />
<condition property="destDirHasBeans">
<matches pattern=".*spring-beans$" string="${destdir}" />
</condition>
<if>
<equals arg1="destDirHasBeans" arg2="true" />
<then>
$destdir ends with spring-beans ...
</then>
<else> ...
</else>
</if>
正则表达式模式".*spring-beans$"
中的“$”是匹配字符串末尾的锚点。
于 2013-01-31T04:13:00.363 回答
3
作为Matteo,Ant-Contrib 包含很多好东西,我大量使用它。
但是,在这种情况下可以简单地使用<basename>
任务:
<basename property="basedir.name" file="${destdir}"/>
<condition property="ends.with.spring-beans">
<equals arg1="spring-beans" arg2="${basedir.name}"/>
<condition>
该属性${ends.with.spring-beans}
将包含true
if${destdir}
以string-beans
和false
其他方式结尾。您可以在任务的if
orunless
参数中使用它<target>
。
于 2012-11-30T17:35:36.677 回答
0
您可以使用Ant-Contrib的EndWith条件
<endswith string="${destdir}" with="spring-beans"/>
例如
<if>
<endswith string="${destdir}" with="spring-beans"/>
<then>
<!-- do something -->
</then>
</if>
编辑
<endswith>
是必须安装和启用的 Ant-Contrib 包的一部分
<taskdef resource="net/sf/antcontrib/antlib.xml"/>
于 2012-11-30T17:18:34.783 回答
0
JavaScript 的强大功能可用于 ANT 中的字符串操作:
<script language="javascript"> <![CDATA[
// getting the value for property sshexec.outputproperty1
str = project.getProperty("sshexec.outputproperty1");
// get the tail , after the separator ":"
str = str.substring(str.indexOf(":")+1,str.length() ).trim();
// store the result in a new property
project.setProperty("res",str);
]]> </script>
<echo message="Responce ${res}" />
于 2015-12-28T12:29:54.817 回答