Задача ant scp висит на Linux - PullRequest
2 голосов
/ 01 августа 2011

Я столкнулся с проблемой, когда задача 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 ]

3 голосов
/ 02 августа 2011

Найден обходной путь, который решает мою проблему.Он должен использовать атрибут sftp = "true" задачи scp, например:

<scp file="${usr}:${pwd}@${hst}:${dir}/*" todir="${to}" trust="true" sftp="true"/>
2 голосов
/ 15 июня 2013

Когда я использовал опцию sftp = "true" с maven-antrun-plugin, я получал следующую ошибку. [ОШИБКА] вокруг части Ant ...... @: тип не поддерживает атрибут "sftp".

Я смог заставить это работать, переключившись обратно на старую версию jsch, а именно 0.1.29

      <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>0.1.29</version>
      </dependency>
...