诚实的。蚂蚁对我来说是新的。
我有一根绳子。
我需要使用这个字符串,比如说(A;B;C;),作为
A、B、C
但我也需要循环这些值,并将它们传递给另一个蚂蚁目标!
循环A,然后是B,最后是C
字符串中的值数目也是随机的。我搜索了一下网络,发现蚂蚁很容易就能找到它。
但就像往常一样,我不能用蚂蚁,因为其他人的一些原因。
如有任何帮助,将不胜感激。
谢谢
发布于 2014-10-06 11:40:33
将脚本任务与内置javascript引擎一起使用(自Java1.6.06以来就包括在内,因此不需要额外的库或ant加载项)和对api的完全访问。这里有一个非常简单的片段:
<project>
<property name="foo" value="A;B;C"/>
<script language="javascript">
<![CDATA[
// a simple String replace action
var clean = project.getProperty('foo').replace(';', ' ');
println(clean);
// create a property for further processing in the buildscript
project.setProperty('foobar', project.getProperty('foo').replace(';', ' '));
// for loop
var items = project.getProperty('foo').split(';');
for (var i = 0; i < items.length; i++) {
println(items[i]);
}
]]>
</script>
<echo> $${foobar} => ${foobar}</echo>
</project>产出:
[script] A B C
[script] A
[script] B
[script] C
[echo] ${foobar} => A B C为了重用,将脚本包装在宏中。
--评论后编辑--
可以通过编程方式调用ant任务,例如使用回波任务:
<project>
<property name="foo" value="A;B;C"/>
<script language="javascript">
<![CDATA[
// for loop
var items = project.getProperty('foo').split(';');
for (var i = 0; i < items.length; i++) {
print = project.createTask("echo");
print.addText(items[i]);
print.execute();
}
]]>
</script>
</project>产出:
[echo] A
[echo] B
[echo] C发布于 2017-03-08 19:55:32
你可以用反排骨:
<antcontrib:propertyregex property="trimmedprop"
input="${untrimmedprop}"
defaultValue="${untrimmedprop}"
regexp="\s"
replace=""
global="true" />对于拆分,我猜您将使用一个" For“循环,您也可以通过反竞争来实现这个目的:
<property name="letters" value="a,b,c,d,e"/>
<antcontrib:for list="${letters}" param="letter">
<echo>Letter ${letter}</echo>
</antcontrib:for>要在你的项目中获得反竞争:
<project default="test" xmlns:antcontrib="antlib:net.sf.antcontrib">
<typedef resource="net/sf/antcontrib/antlib.xml" uri="antlib:net.sf.antcontrib" classpath="/local/path/to/ant-contrib-1.0b3.jar" />https://stackoverflow.com/questions/26214662
复制相似问题