Tarefa de Ant SCP não está funcionando, mesmo com JSCH na Ant/Lib
Pergunta
Preciso copiar um arquivo de guerra via SCP.
Eu adicionei o jsch-0.1.42.jar
para $ANT_HOME/lib
Mas ainda estou recebendo este erro:
Causa: a classe org.apache.tools.ant.taskdefs.optional.ssh.scp não foi encontrada. Parece um dos componentes opcionais da formiga.
Este é o resultado de correr ant -diagnostics
apenas no caso de:
Solução
Parece o seu problema, do topo do diagnóstico:
Tarefas opcionais: não disponível
Seu diretório $ ANT_HOME/LIB está ausente do formi-jsch.jar, de onde vem sua aula que falta.
Não tenho certeza de como isso aconteceu - eu sempre instalei a formiga do arquivo zip no Baixar site, que inclui todas as tarefas opcionais. Se você instalou a ANT de um pacote Linux, tente verificar se há um pacote separado para as tarefas opcionais.
Depois de instalar as tarefas opcionais, eu excluiria a versão antiga do jsch.jar como sugere @trashgod.
Outras dicas
Eu tive o mesmo problema e corrigi -o! Lembre -se de que você precisa AMBAS ant-jsch.jar
(Native da instalação de Ant ou Java) e atualizado jsch
(No meu caso, foi jsch-0.1.46.jar
) em Ant Lib Dir.
Você precisa carregar o mais novo jsch.jar
a partir de http://www.jcraft.com/jsch/ e adicione à pasta Libs (mas não substitua ant-jsch.jar
).
O erro que muitos desenvolvedores fazem:
ant-jsch.jar
desatualizado (neste casou003Cscp> Tarefa é desconhecida para Ant)- Ajuste as versões das bibliotecas, então
ant-jsch.jar
ejsch
são compatíveis. jsch
não existe ou desatualizado no Ant Lib Dir- Nativo
ant-jsch.jar
substituído porjsch
(eu fiz isso...)
Nos últimos 2 casos, a formiga sabe SCP comando, mas diz que não está disponível.
Eu adicionei dependências de Ant-JSCH e JSCH no Maven Pom.xml ou incluindo esses dois frascos no Build resolveu o problema.