sshexec命令设置

时间:2012-09-21 22:41:44

标签: ant ssh

我需要从本地计算机运行ant脚本,该计算机将在远程计算机上调用ant执行。

所以在我的本地ant文件中:

<target name="test">
     <sshexec host="${host}" username="${user}"
              password="${pwd}"  trust="yes"
              commandResource="(cd F:\execution; ant -f build.xml run)"/>
</target>

在远程计算机上,我有build.xml`,其中包含

<target name="run">
    <mkdir dir ="F:\Testfolder"/>
</target>

当我执行loca ant脚本时,我收到以下错误:

java.io.FileNotFoundException: (cd F:\execution; ant -f build.xml run) 
(The filename, directory name, or volume label syntax is incorrect)

为什么我收到此错误?

2 个答案:

答案 0 :(得分:2)

我们将名为“remote-build.xml”的构建文件部署到远程计算机上的路径/root/project/remote-build.xml,然后我们使用

<sshexec host="${host}"
    username="${user}"
    password="${pwd}"
    trust="yes"
    command="ant -f /root/project/remote-build.xml the-targets-to-execute" />

执行目标。

答案 1 :(得分:1)

你可以在远程机器上创建一个文件(F:\ execution \ runmanycommands.sh并执行该文件。来自网站

  

从远程命令资源(文件)运行一组命令   机器使用密钥验证,没有密码短语

commandResource expects单个资源文件执行。 '(cd F:\ execution; ant -f build.xml run)'不是资源。

(我不确定你的所有目标。看看数字问题,我想你需要连续集成解决方案 - 应该检查jenkins及其许多插件)

(顺便说一下,你可以直接使用ant -f蚂蚁,不需要cd)