Подтвердить что ты не робот

Ant Задача scp не работает, даже с jsch на ant/lib

Мне нужно скопировать военный файл с помощью scp.

Я добавил jsch-0.1.42.jar в $ANT_HOME/lib, но я все еще получаю эту ошибку:

Причина: класс org.apache.tools.ant.taskdefs.optional.ssh.Scp не был найден.         Это выглядит как один из Ant дополнительных компонентов.

Это результат запуска ant -diagnostics на всякий случай:

http://gist.github.com/320859

4b9b3361

Ответ 1

Это похоже на вашу проблему, начиная с верхней части диагностики:

дополнительные задачи: недоступно

В вашем каталоге $ANT_HOME/lib отсутствует ant -jsch.jar, откуда приходит ваш отсутствующий класс.

Я не уверен, как это произошло - я всегда устанавливаю Ant из ZIP файла на сайт загрузки, который включает в себя все необязательные задачи. Если вы установили Ant из пакета Linux, попробуйте проверить, есть ли отдельный пакет для дополнительных задач.

Как только вы установите дополнительные задачи, я удалю старую версию jsch.jar, как предлагает @trashgod.

Ответ 2

У меня была такая же проблема и исправлено! Помните, что вам нужно ОБА ant-jsch.jar (нативный из ant или java-установки) и обновленный jsch (в моем случае это был jsch-0.1.46.jar) в ant lib dir.

Вам нужно загрузить последнюю jsch.jar из http://www.jcraft.com/jsch/ и добавить в папку libs (но не заменить ant-jsch.jar).

Ошибка, которую делают многие разработчики:

  • ant-jsch.jar устаревший (в этом случае задача scp > неизвестна для ant)
  • Отрегулируйте версии библиотек, поэтому ant-jsch.jar и jsch совместимы.
  • jsch не существует или устаревшим в ant lib dir
  • Нативный ant-jsch.jar заменен на jsch (я сделал это...)

В последних двух случаях ant знает команду scp, но говорит, что она недоступна.

Ответ 3

Я добавил ant-jsch и jsch зависимости в maven pom.xml или, включив эти два jar файла в сборку, решил проблему.