1

我是一个蚂蚁新手,我正在尝试从 Cruise Control 运行一个利用 SCP 和 SSHEXEC 任务的 ant 构建。当我尝试运行脚本时,出现此错误:

问题:未能创建任务或键入 sshexec 原因:未找到类 org.apache.tools.ant.taskdefs.optional.ssh.SSHExec。这看起来像是 Ant 的可选组件之一。操作:检查 -/app/cruisecontrol-bin-2.8.4/lib 中是否存在适当的可选 JAR

我跑了ant -diagnostics,它说 ant-jsch.jar(40200 字节)包含在我的 ANT_HOME/lib 中,我在 Cruisecontrol-bin-2.8.4/lib 中也看到了这个 jar,尽管这个是 ~30,122 字节。

然而,诊断报告说:

sshexec : Missing dependency com.jcraft.jsch.Logger
scp : Missing dependency com.jcraft.jsch.Logger

我将版本从 ANT_HOME/lib 放到了巡航控制库中,但并没有什么不同(我不确定是否必须重新加载类路径或其他东西,甚至如何做到这一点)。

任何建议或建议将不胜感激,我真的不知道如何解决这个问题。昨晚我也在尝试 taskdefs ,但这也不起作用。

4

1 回答 1

2

通过确保将 Ant 端放在适当的位置,您朝着正确的方向迈出了一步。问题是您缺少外部 JSch 类com.jcraft.jsch.Logger

要解决此问题,您需要通过从JCraft下载和安装来满足外部依赖项(如Ant 文档中所列) 。如果合适,您可以将 jar 放在 Ant lib 目录中。jsch.jar

当您获得无法识别的“悬空”外部依赖项时,谷歌搜索通常是查找源代码的最快方法:在这种情况下,JCraft 目前在搜索中排名第四。 JarFinder是第三个,它将类名映射到包含它的 jar。

于 2013-06-15T10:06:39.257 回答