我正在尝试在构建文件中使用Ant <scp>
任务。每次运行目标时都会出错:
cannot be found: com/jcraft/jsch/UserInfo
我已经阅读了一些有关Ant 1.7存在此问题的帖子。一些帖子正在谈论从ant_home lib中删除ant-jsch.jar
文件。不幸的是我无法做到这一点,因为ant_home在许多其他项目中很常见,我无法从lib目录中删除或更新任何jar文件。
有没有办法可以纯粹使用Ant配置来解决这个问题?
答案 0 :(得分:3)
ant-jsch.jar
包含由Apache Ant团队开发的ssh相关任务,而jsch.jar
包含jsch库,这是这些ssh任务的依赖。
所以请稍微检查一下:检查jsch.jar
中是否有$ANT_HOME/lib
,还要检查jar是否包含UserInfo.class
。
如果出现上述情况之一,请下载最新版本的jsch.jar
并将其放入$ANT_HOME/lib
。
我目前正在使用Ant 1.8.4并且去年下载jsch.jar
没有任何问题。
更新
首先检查此页面:
http://ant.apache.org/manual/install.html#optionalTasks
请注意,默认情况下,<scp>
和其他ssh任务(ant-jsch.jar)包含在Ant二进制分发版中。您不需要编写<taskdef>
来使用<scp>
,因为它默认包含在Ant的lib目录中。我建议您将jsch.jar
放在该目录中,并注明以下几点:
<classpath>
的{{1}},然后在ssh任务中引用它。jsch.jar
放在系统的CLASSPATH环境变量中包含的任何目录中,但这不是一个好习惯。