在 Ant 中传递分号作为参数
我想通过“;;;” string 作为我的 Ant 任务中的字符串参数:
<mytask param=";;;"/>
但是 Ant 将分号视为特殊符号并引发错误
java.lang.IllegalArgumentException: Illegal group reference
我该如何转义 ;符号将其传递给 Ant?
ps 我还发现我无法传递 { 符号,
所以我想知道 Ant 中转义字符的常用方法是什么?
我试过“$;$;$;”但它对我不起作用
更新: 示例代码:
public class MyTask extends Task {
private String value;
public void setValue(String value) {
this.value = value;
}
public void execute() {
System.out.println(value);
}
}
和ant任务:
<taskdef name="mytask" classpath="build/lib/CustomTasks.jar"
classname="MyTask"/>
<mytask value=";;;"/>
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 me
UPDATE:
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=";;;"/>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我对此示例没有任何问题:
输出:
执行
mytask
任务时可能出现问题?I have not any problem with this sample:
Output:
May be problem in implementation of
mytask
task?转义分号使用:
;
请参阅以下位置的完整列表:
http://www.w3schools.com/TAGS/ref_ascii.asp
to escape semicolon use:
;
Refer to for complete list at:
http://www.w3schools.com/TAGS/ref_ascii.asp
关于向 ant 传递特殊字符的一般注意事项:
我曾经向 ant SQL 任务传递密码,但在特殊字符上失败,例如 @$#%^&*! strong>
使用 &\amp; 切换 & 有效,但其他字符如 $ 或 #失败的。
我最终直接在 ant 构建文件中替换密码变量字符串(使用任何搜索替换脚本,例如 Linux 的 sed),而不是使用 -D 将参数发送到脚本。
因此,如果可能的话,不要浪费时间转义或切换您找到的任何特殊字符 - 尝试使用更简单的搜索替换解决方案。
One note on passing special characters to ant in general:
I used to pass a password to ant SQL task but it failed on special characters such as @$#%^&*!
Switching & with &\amp; worked, but the other characters such as $ or # failed.
I ended up with replacing the password variable string directly inside the ant build file (using any search-replace script such as Linux's sed), rather than sending the parameter to the script using -D.
So if possible, don't waste your time on escaping or switching any special character you find - try to use an easier search-replace solution.