web-dev-qa-db-fra.com

ANT - Impossible de charger une classe dépendante com/jcraft/jsch/Logger

J'ai un problème avec mon script Ant.

J'ai besoin de copier un fichier sur un serveur Linux

<copy file="../Ant/lib/jsch-0.1.50.jar" tofile="${ant.home}/lib/jsch-0.1.50.jar" />

<scp todir="${server.user}:${server.password}@${server.dev}:${server.dev.dir.config}" trust="true" verbose="true">
    <fileset dir="${src.home}/Config/">
        <include name="**/*" />
    </fileset>
</scp>

Le fichier est copié correctement, mais je reçois cette erreur:

BUILD FAILED
C:\dev.xml:179: Problem: failed to create task or type scp
Cause: Could not load a dependent class com/jcraft/jsch/Logger
       It is not enough to have Ant's optional JARs
       you need the JAR files that the optional tasks depend upon.
       Ant's optional task dependencies are listed in the manual.
Action: Determine what extra JAR files are needed, and place them in one of:
    -C:\Progs\Eclipse\plugins\org.Apache.ant_1.8.3.v201301120609\lib
    -C:\Users\Administrator\.ant\lib
    -a directory added on the command line with the -lib argument

Comment puis-je ajouter dynamiquement ce fichier JAR dans le chargeur de classes Ant?

10
kete nefrega

L'exception elle-même est assez claire et indique la raison du problème:

Action: Determine what extra JAR files are needed, and place them in one of:
    -C:\Progs\Eclipse\plugins\org.Apache.ant_1.8.3.v201301120609\lib
    -C:\Users\Administrator\.ant\lib
    -a directory added on the command line with the -lib argument

S'il vous plaît vérifier à partir de dépendances de la bibliothèque

jsch.jar 0.1.50 ou version ultérieure: tâches sshexec et scp ( http://www.jcraft.com/jsch/index.html )

Si vous copiez cette bibliothèque dans ant-lib, le problème de la version autonome Ant sera résolu.

Et pour le cas d'Eclipse: Allez dans les préférences Eclipse, dans l'entrée Ant/Runtime, dans l'onglet 'Classpath'. Utilisez le bouton 'Ajouter des fichiers externes' pour ajouter votre fichier jsch.jar au chemin de classe de Ant.

10
Exploring

J'ai trouvé la solution ici

2
VincentLamoute

Si vous utilisez Eclipse en tant que IDE et que vous exécutez ant à partir d’Eclipse, il ne suffit pas de copier le fichier JAR requis, jsch-0.1.51.jar (ou toute version). Il est également nécessaire de changer le chemin de classe utilisé par ant quand il est lancé.

Si vous utilisez Windows -> Fenêtre> Préférences> Ant> Exécution Si vous utilisez Mac -> Eclipse> Préférences> Ant> Exécution

dans l'onglet Classpath, dans "Entrées dans la maison Ant ...", vous devez ajouter le nouveau fichier jar.

Après cela fonctionne.

0
buttcmd

Ajoutez toutes les dépendances de JSCH au répertoire lib de ANT à l’aide de balises <copy similaires. 

Pour trouver des dépendances de JSCH, consultez sa documentation. 

0
AlexR

Une fois que vous avez copié jsch-0.1.51.jar dans/usr/share/ant/lib/(ou votre répertoire, quel qu’il soit), assurez-vous que le fichier JAR est lisible par tous les utilisateurs, pas seulement par les utilisateurs root. Ne soyez pas comme moi et passez une demi-heure à essayer de comprendre pourquoi cela ne fonctionne pas.

0
Torben