我遇到了一个问题,即在文件集副本中ant scp任务挂起。任务是:
<scp file="${usr}:${pwd}@${hst}:${dir}/*" todir="${to}" trust="true"/>
它成功复制了许多文件,然后挂起。
请注意,它复制的主机是localhost,但这应该没有区别。
我还使用相同的ant脚本将文件从同一个Linux主机复制到Windows机器,这样做没有任何问题。
Google搜索显示2007年左右出现了类似的问题http://www.symphonious.net/2007/10/23/ant-scpssh-task-hangs-or-never-disconnects/,但升级到他们提供的最新版ant(或降级jsch)的解决方案并没有解决我的问题。 (https://issues.apache.org/bugzilla/show_bug.cgi?id=41090)
中也提到了这个缺陷我使用过ANT 1.8.2,ANT 1.7.1和ANT 1.6.5,他们都有这个问题。 我正在使用jsch 0.1.44,但即使使用更高版本的jsch,我也会遇到这个问题。
有什么想法吗?
答案 0 :(得分:3)
找到解决我问题的解决方法。它是使用scp任务的sftp =“true”属性,如下所示:
<scp file="${usr}:${pwd}@${hst}:${dir}/*" todir="${to}" trust="true" sftp="true"/>
答案 1 :(得分:2)
当我使用maven-antrun-plugin选项sftp =“true”时,我收到以下错误。 [ERROR]围绕Ant部分...... @:该类型不支持“sftp”属性。
我能够通过切换回旧版本的jsch来实现这一点,特别是0.1.29
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.29</version>
</dependency>