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
Ответы
Ответ 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 файла в сборку, решил проблему.