我正在尝试在我的OSX盒子上使用sshexec任务进行ANT,当我尝试运行它时,我得到下面列出的错误。我从以下版本下载了jsch jar文件: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 :::: 我从apache安装了一个新版本的ANT并将它放在/ 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)
这是我的诊断信息:
答案 0 :(得分:3)
看起来像版本兼容性问题,请检查jsch的版本是否与ant版本支持的版本匹配。
也许
答案 1 :(得分:1)
发现问题,当我尝试修复旧的ant版本时,我的调试尝试遗留了这个文件: /Library/Java/Extensions/jsch-0.1.8.jar
我删除了那个人,一切都很好
答案 2 :(得分:0)
下载jsch-0.1.44.jar
并确保trust="true"
已设置。
答案 3 :(得分:-1)
确保您给予trust =“true”
<sshexec trust="true"
host="host_ip"
verbose="true/false"
username="UserName"
keyfile="KeyFile_location"
command="some_command">
</sshexec>