Ant scp任务无法正常工作,即使在ant/lib上使用jsch也是如此

Pab*_*dez 18 java ant scp build task

我需要通过scp复制war文件.

我添加了jsch-0.1.42.jarto $ANT_HOME/lib但我仍然收到此错误:

原因:找不到类org.apache.tools.ant.taskdefs.optional.ssh.Scp.这看起来像Ant的可选组件之一.

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

http://gist.github.com/320859

gar*_*les 14

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

可选任务:不可用

您的$ ANT_HOME/lib目录缺少ant-jsch.jar,这是您缺少的类所在的位置.

我不确定这是怎么发生的 - 我总是从下载站点的ZIP文件中安装Ant ,其中包括所有可选任务.如果您从Linux软件包安装了Ant,请尝试检查是否有可用任务的单独软件包.

一旦你安装了可选任务,我会删除旧版本的jsch.jar,如@trashgod建议的那样.

  • 如果你使用的是与MacOSX Lion 10.7+捆绑在一起的'ant',它不会附带ant-jsch.jar.下载官方蚂蚁的副本并将ant-jsch.jar复制到〜/ .ant/lib /以及jsch.jar本身为我修复了这个问题. (4认同)

rad*_*tao 14

我有同样的问题并修复它!请记住,你需要两个 ant-jsch.jar(本机来自ant或java安装)并在ant lib dir中更新jsch(在我的情况下是jsch-0.1.46.jar).

您需要jsch.jarhttp://www.jcraft.com/jsch/加载最新版本并添加到libs文件夹(但不能替换ant-jsch.jar).

许多开发人员犯的错误:

  1. ant-jsch.jar 过时(在这种情况下,<scp>任务对于ant来说是未知的)
  2. 调整库版本,所以ant-jsch.jarjsch是兼容的.
  3. jsch 在ant lib目录中不存在或过时
  4. 原生ant-jsch.jar代替jsch(我做了......)

在最后2例中,ant知道scp命令,但表示它不可用.