Ant scp 任务不起作用,即使 jsch 在 ant/lib 上也是如此

2022-09-02 21:03:47

我需要通过scp复制战争文件。

我已经添加了,但我仍然收到这个错误:jsch-0.1.42.jar$ANT_HOME/lib

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

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

http://gist.github.com/320859


答案 1

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

可选任务:不可用

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

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

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


答案 2

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

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

许多开发人员都犯的错误:

  1. ant-jsch.jar已过期(在本例中为 <scp>任务对于 ant 是未知的)
  2. 调整库版本,因此并且是兼容的。ant-jsch.jarjsch
  3. jsch在 ant lib dir 中不存在或已过期
  4. 本机替换为(我做到了...)ant-jsch.jarjsch

在最后2种情况下,蚂蚁知道scp命令,但说它不可用。


推荐