Задача Ant scp не работает, даже с jsch на ant / lib - PullRequest
17 голосов
/ 03 марта 2010

Мне нужно скопировать военный файл через 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

Ответы [ 3 ]

14 голосов
/ 26 февраля 2012

У меня была такая же проблема и я ее исправил! Помните, что вам нужно ОБА 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).

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

  1. ant-jsch.jar устарел (в данном случае задача неизвестна для муравья)
  2. Настройка версий библиотек, чтобы ant-jsch.jar и jsch были совместимы.
  3. jsch не существует или устарел в ant lib dir
  4. Родной ant-jsch.jar заменен на jsch (я сделал это ...)

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

14 голосов
/ 03 марта 2010

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

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

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

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

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

0 голосов
/ 03 мая 2019

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

...