我在Windows和Linux机器上分别有两个ant文件,分别是 antFile1.xml 和 antFile2.xml 。
antFile1.xml
<target name="executeOnLinux">
<sshexec
host="${remote.host.ip}"
username="${remote.user.id}"
password="${remote.user.ssh.password}"
command="ant -f antFile2.xml 'linuxAntTarget'"
trust="true"/>
</target>
antFile2.xml
<target name="linuxAntTarget">
<input message="Enter application edition number" addproperty="editionNo"/>
<echo message="${editionNo}"/>
</target>
当我从我的 antFile1.xml 执行名为“ executeOnLinux ”的目标时,它连接到linux机器并开始执行“ linuxAntTarget < / strong>“来自 antFile2.xml 文件。但是,一旦达到需要用户输入的点,就会一直等待,因为我无法传递输入。我的问题是如何将价值传递给它?这甚至可能还是有其他更好的方法吗?
答案 0 :(得分:0)
自Ant 1.9.4起,sshexec任务提供了useSystemIn
属性:
是否将当前标准输入传递给远程进程,默认为false
您也可以尝试同一任务中的input
属性:
执行命令的标准输入的文件。此属性与inputstring和inputproperty属性互斥。 通过commandResource执行多个命令时,将为每个命令读取输入。 自Ant 1.8.0