我试图部署使用Ant脚本PHP应用程序。我已经把所有必要的罐子在图书馆:即蚂蚁jsch-1.8.1.jar,jsch-0.1.55.jar
在我的剧本我宣布sshexec和scp如下:
<path id="jsch.class.path">
<pathelement location="lib/ant-jsch-1.8.1.jar" />
<pathelement location="lib/jsch-0.1.55.jar" />
</path>
<taskdef name="scp" classname="org.apache.tools.ant.taskdefs.optional.ssh.Scp" classpathref="jsch.class.path" />
<taskdef name="sshexec" classname="org.apache.tools.ant.taskdefs.optional.ssh.SSHExec" classpathref="jsch.class.path" />
当构建在詹金斯执行我得到这些错误事件虽然公钥的位置是正确的:
[sshexec] Caught exception: java.io.FileNotFoundException: /home/jenkins/.ssh/id_dsa (No such file or directory)
[sshexec] Caught exception: java.io.FileNotFoundException: /home/jenkins/.ssh/id_dsa (No such file or directory)
[scp] Caught exception: java.io.FileNotFoundException: /home/jenkins/.ssh/id_dsa (No such file or directory)
奇怪的是,当我在我的机器上本地运行的构建脚本,它工作正常。
任何帮助将非常感激。
问题是,我不得不保存的路径,私钥的变量,该字符串可能有一个额外的空间或字符和ANT弄糊涂了。我替换的变量与私钥的直接路径和它的工作。为了重复利用可变我复制的路径和在运行命令它分配给相同的变量。