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

时间:2010-03-03 18:57:02

标签: java ant build scp task

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

我已将jsch-0.1.42.jar添加到$ANT_HOME/lib,但我仍然收到此错误:

  

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

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

http://gist.github.com/320859

3 个答案:

答案 0 :(得分:14)

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

可选任务:不可用

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

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

安装完可选任务后,我会删除旧版本的jsch.jar,如@trashgod所示。

答案 1 :(得分:14)

我有同样的问题并修复了它! 请记住,您需要 BOTH ant-jsch.jar(来自ant或java安装本机)并在ant lib目录中更新jsch(在我的情况下为jsch-0.1.46.jar)。< / p>

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

许多开发人员犯的错误:

  1. ant-jsch.jar已过期(在这种情况下&lt; scp&gt;任务未知蚂蚁)
  2. 调整库版本,因此ant-jsch.jarjsch兼容。
  3. jsch在ant lib目录中不存在或已过期
  4. 原住民ant-jsch.jar已替换为jsch(我做了......)
  5. 在最后2个案例中,ant知道 scp 命令,但表示它不可用。

答案 2 :(得分:0)

我在maven pom.xml中添加了ant-jsch和jsch依赖项,或者在构建中包括了这两个jar来解决了这个问题。