在蚂蚁通分号作为参数 [英] Pass semicolon in Ant as a parameter
问题描述
我想通过;;;字符串作为我的Ant任务字符串参数:
< mytask参数=;;;/>
但蚂蚁考虑分号作为一个特殊的符号,并会引发错误
java.lang.IllegalArgumentException异常:非法组引用
我怎么能逃脱;符号将它传递给蚂蚁?
P.S。同时我发现我不能传递{符号,结果
所以我不知道什么是在Ant来转义字符的常见方式?结果
我已经试过$,$,$;但它不是为我工作
更新:
样品code:
公共类MyTask扩展任务{
私人字符串值;
公共无效的setValue(字符串值){
THIS.VALUE =价值;
} 公共无效的execute(){
的System.out.println(值);
}
}
和Ant任务:
<的taskdef NAME =mytaskCLASSPATH =构建/ lib目录/ CustomTasks.jar
类名=MyTask/>
< mytask值=;;;/>
我没有这个样本的任何问题:
<目标名称=test_passing_params>
< antcall目标=test_echo>
< PARAM NAME =参数1值=;;;/>
< PARAM NAME =参数2值={/>
< / antcall>
< /目标与GT;
<目标名称=test_echo>
<回声>参数1:$ {参数1}< /回声>
<回声>参数2:$ {参数}< /回声>
< /目标与GT;
输出:
回声
参数1:;;;
回声
参数2:{
块引用>可能是在执行
mytask
任务的问题?I want to pass ";;;" string as a string parameter in my Ant task:
<mytask param=";;;"/>
but Ant consider semicolon as a special symbol and raises an error
java.lang.IllegalArgumentException: Illegal group reference
how can I escape ; symbol to pass it to Ant?
p.s. also I found that I can't pass { symbol,
so I wonder what's the common way to escape characters in Ant?
I've tried "$;$;$;" but it's not working for meUPDATE: sample code:
public class MyTask extends Task { private String value; public void setValue(String value) { this.value = value; } public void execute() { System.out.println(value); } }
and ant task:
<taskdef name="mytask" classpath="build/lib/CustomTasks.jar" classname="MyTask"/> <mytask value=";;;"/>
解决方案I have not any problem with this sample:
<target name="test_passing_params"> <antcall target="test_echo"> <param name="param1" value=";;;"/> <param name="param2" value="{"/> </antcall> </target> <target name="test_echo"> <echo>param1: ${param1}</echo> <echo>param2: ${param2}</echo> </target>
Output:
echo
param1: ;;;
echo
param2: {May be problem in implementation of
mytask
task?这篇关于在蚂蚁通分号作为参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!