0

我需要从本地机器运行 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)

为什么我会收到此错误?

4

2 回答 2

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" />

执行目标。

于 2012-09-24T03:11:07.123 回答
1

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

使用不带密码的密钥身份验证从远程计算机上的命令资源(文件)运行一组命令

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

(我不确定你的总体目标。看看数字问题,我猜你需要持续集成解决方案——应该检查jenkins的许多插件)

(顺便说一句,你可以直接用 ant -f 全部蚂蚁,避免需要 cd)

于 2012-09-22T06:07:40.657 回答