Ant не может найти мой JAR-файл? Попытка выполнить задачу sshexec - PullRequest
1 голос
/ 16 сентября 2010

Я пытаюсь использовать задачу sshexec для ANT на моем компьютере с OSX, при попытке запустить ее я получаю сообщение об ошибке, приведенное ниже. Я скачал jar-файл jsch: http://www.jcraft.com/jsch/index.html версия jsch-0.1.43.jar

Я поместил этот файл в / usr / share / ant / lib, но ошибка все равно возникает. есть идеи?

спасибо

<target name="testme" depends="">
 <sshexec host="myhost1" username="${username}" command="ls -la" keyfile="${user.home}/.ssh/id_rsa" />
</target>

Я получаю следующую ошибку:

BUILD FAILED
/Users/jim/Code/myapp/deploy.xml:16: Problem: failed to create task or type sshexec
Cause: the class org.apache.tools.ant.taskdefs.optional.ssh.SSHExec was not found.
        This looks like one of Ant's optional components.
Action: Check that the appropriate optional JAR exists in
        -/usr/share/ant/lib
        -/Users/jim/.ant/lib
        -a directory added on the command line with the -lib argument

Do not panic, this is a common problem.
The commonest cause is a missing JAR.

UPDATE :::: Я установил новую версию ANT из apache, поместил ее в / usr / local и переместил файл jsch в / usr / local / ant / lib, и он исправляет ошибку, однако теперь у меня есть новая, когда я запускаю ее с: ant -f deploy.xml restart

BUILD FAILED
    /Users/jim/Code/myapp/deploy.xml:20: java.lang.NoSuchMethodError: com.jcraft.jsch.ChannelExec.setExtOutputStream(Ljava/io/OutputStream;)V
        at org.apache.tools.ant.taskdefs.optional.ssh.SSHExec.executeCommand(SSHExec.java:265)
        at org.apache.tools.ant.taskdefs.optional.ssh.SSHExec.execute(SSHExec.java:194)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:390)
        at org.apache.tools.ant.Target.performTasks(Target.java:411)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
        at org.apache.tools.ant.Main.runBuild(Main.java:801)
        at org.apache.tools.ant.Main.startAnt(Main.java:218)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

Вот моя диагностическая информация:

http://pastebin.org/877058

Ответы [ 4 ]

3 голосов
/ 16 сентября 2010

похоже на проблему совместимости версий, проверьте, что версия jsch совпадает с версией, поддерживаемой версией ant.

возможно.

1 голос
/ 16 сентября 2010

Обнаружил проблему, когда пытался исправить старую версию ant, у меня остался этот файл после моих попыток отладки: /Library/Java/Extensions/jsch-0.1.8.jar

Я удалил этого парня, и все хорошо

0 голосов
/ 28 августа 2012

Убедитесь, что вы доверяете = "true"

<sshexec trust="true"
           host="host_ip"        
           verbose="true/false"
           username="UserName"
           keyfile="KeyFile_location"                     
           command="some_command">
</sshexec>
0 голосов
/ 06 мая 2011

Загрузите jsch-0.1.44.jar и убедитесь, что trust="true" установлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...