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で直接antすることができ、cdの必要性を回避します)

于 2012-09-22T06:07:40.657 に答える