2010-09-15 2 views
1

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

Я поместил этот файл в/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 от апач и поместить его в/USR/местные и переехал 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

ответ

3

выглядит как проблема совместимости версии, проверьте версию JSch соответствует один поддерживаемый муравьиной версии.

возможно.

+0

Я установил версию: JSch-0.1.42.jar только в случае, если на основе документации по адресу: http://ant.apache.org/ manual/install.html # librarydependencies, но я все равно получаю ту же ошибку :( – James

1

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

Я снял этот парень и все хорошо

+1

, так как я был прав, вам, вероятно, следует пометить мой ответ и переместить ваше сообщение в комментарий. Это было бы правильным ТО, что нужно делать. – pstanton

0

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

-1

Убедитесь, что вы даете доверие = «истинный»

<sshexec trust="true" 
      host="host_ip"   
      verbose="true/false" 
      username="UserName" 
      keyfile="KeyFile_location"      
      command="some_command"> 
</sshexec>