2010-03-03 97 views
17

我需要通过scp复制war文件。Ant scp任务不工作,即使在jsch上ant/lib

我已经加入了jsch-0.1.42.jar$ANT_HOME/lib但我仍然收到此错误:

Cause: the class org.apache.tools.ant.taskdefs.optional.ssh.Scp was not found. This looks like one of Ant's optional components.

这是以防万一运行ant -diagnostics的结果:

http://gist.github.com/320859

+0

你在类路径上有jsch两次,选择一个jsch-0.1.29.jar(153401字节) jsch-0.1.42.jar(185746字节) – 2010-03-03 18:58:29

+0

是的,它不适用于它们中的任何一个。 – 2010-03-03 19:00:32

回答

14

这看起来像您的问题,从诊断顶部:

可选任务:不可用

您的$ ANT_HOME/lib目录缺少ant-jsch.jar,这是您的缺失类来自哪里。

我不知道这是怎么发生的 - 我总是在ZIP文件中安装包含所有可选任务的download site。如果您从Linux软件包安装Ant,请尝试检查是否有可选任务的单独软件包。

一旦你安装了可选的任务,我会删除旧版本的jsch.jar,正如@trashgod所示。

+0

解决了它。谢谢 – 2010-03-04 17:28:50

+4

如果您使用MacOSX Lion 10.7+捆绑的'ant',它不会随ant-jsch.jar提供。下载正式ant的副本并将ant-jsch.jar复制到你的〜/ .ant/lib /以及jsch.jar本身为我解决了这个问题。 – 2012-02-09 23:25:13

14

我有同样的问题,并修复它! 记住,你需要BOTHant-jsch.jar(原生从ant或java安装)和更新jsch(在我的情况下它是jsch-0.1.46.jar)在ant lib目录中。

您需要从http://www.jcraft.com/jsch/加载最新的jsch.jar并添加到库文件夹(但不能替换ant-jsch.jar)。

的错误很多开发商做:

  1. ant-jsch.jar过时(在这种情况下<SCP>任务是蚂蚁未知)
  2. 调整库版本,所以ant-jsch.jarjsch是兼容的。
  3. jsch不存在的或过时的蚂蚁lib目录与jsch更换
  4. 本地ant-jsch.jar(我做到了......)

在最后2箱子蚂蚁知道SCP命令,但是他说,不可用。

+0

如果事情仍然无法正常进行,请注意版本不兼容。升级ant,确保ant-jsch存在,并将jsch升级到最新版本。 – dgorur 2013-07-16 18:21:00

+0

使用'mvn antrun:run'时不起作用。试图使用ant-jsch-1.9.2和jsch-0.1.54,但它会给出错误。 – zygimantus 2017-03-08 11:03:37