我已经创建了一个大型脚本,可以传递给ant中的sshexec commandResource,如下所示。
<sshexec host="${host.server}"
username="${username}"
password="${oracle.password}"
commandResource="path-to-file/script.txt"
/>
这是按预期工作的。 在该脚本中有几行将在服务器上执行。 script.txt文件的内容如下:
/script/compile_objects.sh /path-to-code/ login password
/script/compile_code.sh /path-to-code/ login password
但是,我宁愿不将登录名和密码作为明文存储在script.txt文件中。是否可以将参数传递给命令资源的每一行。我知道命令资源文件中的每一行都在自己的shell中执行。
我尝试从Ant脚本中的属性替换字符串,但它失败了,因为这样的替换错误。还有另一种方法吗?
<property name="oracle.password" value="thepassword"/>
然后在脚本文件中,改为:
/script/compile_objects.sh /path-to-code/ login ${oracle.password}
/script/compile_code.sh /path-to-code/ login ${oracle.password}
此类替换在使用命令功能时有效,但在使用commandResource时似乎失败。
编辑: 我正在使用Apache Ant 1.9.4 和jsch-0.1.54.jar