誠實。 ANT對我來說是新的。拆分和修剪螞蟻?
我有一個字符串。
我需要使用該字符串,可以說(A; B; C),作爲
甲 乙 Ç
但我也通過這些值需要循環,並將它們傳遞到另一螞蟻目標!在串
環爲阿 然後B和最後對C
數值是隨機的也。 我搜索了網絡,發現它很容易與ant-contrib。
但像往常一樣,我不能使用ant-contrib由於其他人的某些原因。
任何幫助將不勝感激
感謝
誠實。 ANT對我來說是新的。拆分和修剪螞蟻?
我有一個字符串。
我需要使用該字符串,可以說(A; B; C),作爲
甲 乙 Ç
但我也通過這些值需要循環,並將它們傳遞到另一螞蟻目標!在串
環爲阿 然後B和最後對C
數值是隨機的也。 我搜索了網絡,發現它很容易與ant-contrib。
但像往常一樣,我不能使用ant-contrib由於其他人的某些原因。
任何幫助將不勝感激
感謝
使用script task,帶有內置的JavaScript引擎(因爲Java的06年6月1日包括在內,因此不需要額外的庫或螞蟻插件) 全面進入螞蟻的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
重複使用包裝您的腳本在macrodef。評論後
- 編輯 -
它可以使用echo task編程方式調用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
你可以使用antcontrib:
<antcontrib:propertyregex property="trimmedprop"
input="${untrimmedprop}"
defaultValue="${untrimmedprop}"
regexp="\s"
replace=""
global="true" />
分裂,我猜你會使用 「for」 循環,你可以做到這一點與antcontrib也:
<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" />
:
<property name="letters" value="a,b,c,d,e"/>
<antcontrib:for list="${letters}" param="letter">
<echo>Letter ${letter}</echo>
</antcontrib:for>
要在項目中得到antcontrib
嗨@Rebse,它工作得很順利。只是我想知道的一件事是否可以調用目標並傳遞值而不是println(items [i]) - >是否有可能? – 2014-10-06 11:58:32
不可能...檢查它.. – 2014-10-06 12:11:08
感謝您的回覆Rebse ...但沒有時間來實現這一點...現在...再次感謝你 – 2014-10-09 12:00:53