具有特殊字符的Ant属性

时间:2014-04-23 03:25:41

标签: java linux ant build-process

我试图将密码和用户名作为参数传递给我的ant文件connectionTester.xml。 我用-v和-d选项运行ant。 我所看到的物业变化让我感到太过烦恼,无法找到解决方案。 密码包含$ character,后面跟一个形成linux命令的字符被替换,如下面的详细输出中所示。

如何处理此方案。密码被修改或替换为其他内容,最终构建失败。

[u@VM:h W]$ /opt/app/apache-ant-1.9.2/bin/ant -file connectionTester.xml -DdeployServer_user=xxxxxxx -DdeployServer.password=apr20$1 -v -d
Apache Ant(TM) version 1.9.2 compiled on July 8 2013
Buildfile: /home/xxxxxx/connectionTester.xml
Adding reference: ant.PropertyHelper
Detected Java version: 1.7 in: /usr/java/jdk1.7.0_25/jre
Detected OS: Linux
Adding reference: ant.ComponentHelper
Setting ro project property: deployServer_user -> xx49783
Setting ro project property: deployServer.password -> apr20-file
Setting ro project property: ant.file -> /home/xx49663/connectionTester.xml
Setting ro project property: ant.file.type -> file

2 个答案:

答案 0 :(得分:1)

尝试在ant call&之前在命令行中设置密码。转义$的含义(考虑它在命令行中作为纯文本传递),如命令行

$myPass=apr20\$1

然后用

-DdeployServer.password=$myPass

答案 1 :(得分:0)

尝试传递

-DdeployServer.password='apr20\$1'