java将分号作为参数在Ant中传递
我想通过考试字符串作为我的Ant任务中的字符串参数:
<mytask param=";;;"/>
< Ant将分号视为一个特殊的符号,并提出一个错误
java.lang.IllegalArgumentException: Illegal group reference
我怎样才能逃脱;把它传给蚂蚁的符号
另外,我发现我不能通过{symbol,
所以我想知道在《蚂蚁》中逃避角色的常见方式是什么
我试过“$;$;$;”但这对我不起作用
更新: 示例代码:
public class MyTask extends Task {
private String value;
public void setValue(String value) {
this.value = value;
}
public void execute() {
System.out.println(value);
}
}
和蚂蚁任务:
<taskdef name="mytask" classpath="build/lib/CustomTasks.jar"
classname="MyTask"/>
<mytask value=";;;"/>
# 1 楼答案
我对这个样本没有任何问题:
输出:
执行
mytask
任务时可能有问题吗# 2 楼答案
关于向ant传递特殊字符的一般注意事项:
我曾经向ant SQL任务传递密码,但在使用特殊字符时失败,例如@$#%^&;*
切换&与&;\amp成功了,但其他角色,如$或#失败了
最后,我直接在ant构建文件中替换了密码变量字符串(使用任何搜索替换脚本,比如Linux的sed),而不是使用-D将参数发送到脚本
所以,如果可能的话,不要把时间浪费在转义或切换你找到的任何特殊角色上——尝试使用更简单的搜索替换解决方案
# 3 楼答案
要转义分号,请使用:
;
有关完整列表,请参阅: http://www.w3schools.com/TAGS/ref_ascii.asp