2010-03-03 15 views
17

J'ai besoin de copier un fichier war via scp.La tâche ant scp ne fonctionne pas, même avec jsch on ant/lib

J'ai ajouté le jsch-0.1.42.jar-$ANT_HOME/lib mais je suis toujours à obtenir cette erreur:

Cause: the class org.apache.tools.ant.taskdefs.optional.ssh.Scp was not found. This looks like one of Ant's optional components.

Ceci est le résultat de l'exécution ant -diagnostics juste au cas où:

http://gist.github.com/320859

+0

vous avez jsch sur le classpath deux fois, choisissez un jsch-0.1.29.jar (153401 octets) jsch-0.1.42.jar (185746 octets) –

+0

ouais, il ne fonctionne pas avec l'un ou l'autre. –

Répondre

14

Cela ressemble votre problème, à partir du haut des diagnostics:

tâches optionnelles: non disponible

Votre répertoire $ ANT_HOME/lib ne contient pas ant-jsch.jar, d'où vient votre classe manquante.

Je ne sais pas comment cela est arrivé - Je toujours installer Ant à partir du fichier ZIP sur le download site, qui comprend toutes les tâches facultatives. Si vous avez installé Ant depuis un paquet Linux, essayez de vérifier s'il existe un paquet séparé pour les tâches facultatives. Une fois les tâches optionnelles installées, je supprimerais l'ancienne version de jsch.jar comme suggéré par @trashgod.

+0

Cela l'a résolu. Merci –

+4

Si vous utilisez le 'fourmi' fourni avec MacOSX Lion 10.7+, il ne sera pas livré avec ant-jsch.jar. Le téléchargement d'une copie de la fourmi officielle et la copie du fichier ant-jsch.jar dans votre fichier ~/.ant/lib/avec le fichier jsch.jar lui-même l'ont corrigé pour moi. –

14

J'ai eu le même problème et l'ai réparé! Rappelez-vous, vous avez besoin BOTHant-jsch.jar (natif de l'installation ant ou java) et mis à jour jsch (dans mon cas, il était jsch-0.1.46.jar) dans ant lib dir.

Vous devez charger le plus récent jsch.jar de http://www.jcraft.com/jsch/ et ajouter au dossier libs (mais ne pas remplacer ant-jsch.jar).

L'erreur beaucoup de développeurs faire:

  1. ant-jsch.jar à jour (dans ce cas <scp> tâche est inconnue pour ant) ​​
  2. Adjust versions de bibliothèques, de sorte ant-jsch.jar et jsch sont compatibles.
  3. jsch existe pas ou périmé dans ant lib dir
  4. natif ant-jsch.jar remplacé par jsch (je l'ai fait ...)

En dernière fourmi 2 cas connaît scp de commande, mais le dit n'est pas disponible.

+0

Et si les choses ne fonctionnent toujours pas, comme cela m'est arrivé, notez qu'il existe des incompatibilités de version. Mettez à jour la fourmi, assurez-vous que le fichier ant-jsch est présent et mettez jsch à jour. – dgorur

+0

Ne aide pas en utilisant 'mvn antrun: run'. Essayer d'utiliser à la fois ant-jsch-1.9.2 et jsch-0.1.54 mais cela donne une erreur. – zygimantus