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