ant scp任务挂起在Linux上

时间:2011-08-01 07:49:13

标签: linux ant jsch

我遇到了一个问题,即在文件集副本中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,我也会遇到这个问题。

有什么想法吗?

2 个答案:

答案 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>