我需要通过scp复制war文件。
我已将jsch-0.1.42.jar
添加到$ANT_HOME/lib
,但我仍然收到此错误:
原因:上课 org.apache.tools.ant.taskdefs.optional.ssh.Scp 没找到。 这看起来像Ant的可选组件之一。
这是运行ant -diagnostics
的结果,以防万一:
答案 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
)。
许多开发人员犯的错误:
ant-jsch.jar
已过期(在这种情况下&lt; scp&gt;任务未知蚂蚁)ant-jsch.jar
和jsch
兼容。jsch
在ant lib目录中不存在或已过期ant-jsch.jar
已替换为jsch
(我做了......)在最后2个案例中,ant知道 scp 命令,但表示它不可用。
答案 2 :(得分:0)
我在maven pom.xml中添加了ant-jsch和jsch依赖项,或者在构建中包括了这两个jar来解决了这个问题。