Ant scp任务无法正常工作,即使在ant / lib上使用jsch也是如此
我需要通过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
从诊断的顶部看,这看起来像你的问题:
可选任务:不可用
您的$ ANT_HOME / lib目录缺少ant-jsch.jar,这是您缺少的类所在的位置。
我不确定这是怎么发生的 – 我总是从下载站点上的ZIP文件安装Ant,其中包括所有可选任务。 如果您从Linux软件包安装了Ant,请尝试检查是否有可用任务的单独软件包。
一旦你安装了可选任务,我会删除旧版本的jsch.jar,如@trashgod建议的那样。
我有同样的问题并修复它! 记住,你需要两个 ant-jsch.jar
(原ant-jsch.jar
ant或java安装)和更新的jsch
(在我的例子中是jsch-0.1.46.jar
)在ant lib目录中。
您需要从http://www.jcraft.com/jsch/加载最新的jsch.jar
并添加到libs文件夹(但不能替换ant-jsch.jar
)。
许多开发人员犯的错误:
-
ant-jsch.jar
已过期(在这种情况下,任务对于ant来说是未知的) - 调整库版本,因此
ant-jsch.jar
和jsch
是兼容的。 - 在lib lib目录中,
jsch
不存在或过时 - 原生的
ant-jsch.jar
替换为jsch
(我做到了……)
在最后2个案例中,ant知道scp命令,但表示它不可用。