ANT - Не удалось загрузить зависимый класс com/jcraft/jsch/Logger

У меня проблема с моим Ant script.

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

Файл скопирован правильно, но я получаю эту ошибку:

    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 optional JARs
           you need the JAR files that the optional tasks depend upon.
           Ant 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

Как я могу динамически добавить этот JAR в загрузчик классов Ant?

Ответ 1

Само исключение вполне понятно и указывает на причину проблемы:

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

Пожалуйста, проверьте Зависимости библиотек

jsch.jar 0.1.50 или новее: задачи sshexec и scp (http://www.jcraft.com/jsch/index.html)

Если вы скопируете этот lib в библиотеке ant, он решит проблему для автономного Ant.

И для случая Eclipse: перейдите в настройки Eclipse, в записи Ant/Runtime, на вкладке "Classpath". Используйте кнопку "Добавить внешние банки", чтобы добавить путь jsch.jar к ant.

Ответ 2

Я нашел решение здесь

Ответ 3

Добавьте все зависимости каталога АКХ к lib ANT с помощью аналогичного тега <copy.

Чтобы найти зависимости от акционерного общества, проверьте его документацию.

Ответ 4

После того, как вы скопировали jsch-0.1.51.jar в/usr/share/ ant/lib/(или любой другой каталог), сделайте файл JAR доступным для чтения для всех пользователей, а не только для root. Не будь таким, как я, и полчаса стараюсь выяснить, почему он не работает.

Ответ 5

Если вы используете Eclipse в качестве IDE и вы запускаете ant из Eclipse, недостаточно для копирования нужного файла jar jsch-0.1.51.jar(или любой другой версии). Также необходимо изменить путь к классу ant при запуске.

Если вы используете Windows → Window > Preferences > ant > Runtime Если вы используете Mac → Eclipse > Preferences > ant > Runtime

на вкладке "Путь к классу" в "Ant домашней записи..." вы должны добавить новую банку.

После этого он работает.