2

我遇到了一个 ant scp 任务在文件集复制期间挂起的问题。任务是:

<scp file="${usr}:${pwd}@${hst}:${dir}/*" todir="${to}" trust="true"/>

它成功复制了许多文件,然后挂起。

请注意,它从中复制的主机是 localhost,但这应该没有区别。

我还使用相同的 ant 脚本将文件从相同的 Linux 主机复制到 Windows 机器,这没有任何问题。

谷歌搜索发现在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 我也遇到了这个问题。

有任何想法吗?

4

2 回答 2

3

找到了解决我的问题的解决方法。就是使用 scp 任务的 sftp="true" 属性,像这样:

<scp file="${usr}:${pwd}@${hst}:${dir}/*" todir="${to}" trust="true" sftp="true"/>
于 2011-08-02T05:05:06.423 回答
2

当我使用 maven-antrun-plugin 中的选项 sftp="true" 时,我收到以下错误。[错误] 围绕 Ant 部分...... @:该类型不支持“sftp”属性。

我可以通过切换回旧版本的 jsch 来完成这项工作,特别是 0.1.29

      <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>0.1.29</version>
      </dependency>
于 2013-06-14T20:05:11.543 回答