即使在 ant/lib 上使用 jsch,Ant scp 任务也无法正常工作

发布于 2024-08-23 20:53:59 字数 389 浏览 6 评论 0原文

我需要通过 scp 复制一个 war 文件。

我已将 jsch-0.1.42.jar 添加到 $ANT_HOME/lib 但仍然收到此错误:

原因:班级 org.apache.tools.ant.taskdefs.可选.ssh.Scp 没有找到。 这看起来像是 Ant 的可选组件之一。

这是运行 ant -diagnostics 的结果,以防万一:

http://gist.github .com/320859

I need to copy a war file via scp.

I have added the jsch-0.1.42.jar to $ANT_HOME/lib but I'm still getting this error:

Cause: the class
org.apache.tools.ant.taskdefs.optional.ssh.Scp
was not found.
This looks like one of Ant's optional components.

This is the result of running ant -diagnostics just in case:

http://gist.github.com/320859

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

秋意浓 2024-08-30 20:53:59

我有同样的问题并解决了它!
请记住,您需要两者ant-jsch.jar(来自ant或java安装的本机)和更新的jsch(在我的例子中是jsch-0.1.46.jar) 在 ant lib 目录中。

您需要从 http://www.jcraft 加载最新的 jsch.jar。 com/jsch/ 并添加到 libs 文件夹(但不替换 ant-jsch.jar)。

许多开发人员犯的错误:

  1. ant-jsch.jar 已过时(在这种情况下,任务对于 ant 来说是未知的)
  2. 调整库版本,因此 ant-jsch.jarjsch 兼容。
  3. 不存在或已过期
  4. 本机 ant-jsch.jar 替换为 jsch (我做到了...)

ant lib dir 中的 jsch 最后 2 个案例 ant 知道 scp 命令,但说它不可用。

I had the same problem and fixed it!
Remember, you need BOTH ant-jsch.jar (native from ant or java installation) and updated jsch (in my case it was jsch-0.1.46.jar) in ant lib dir.

You need to load the newest jsch.jar from http://www.jcraft.com/jsch/ and add to libs folder (but not replace ant-jsch.jar).

The mistake a lot of developers do:

  1. ant-jsch.jar out of date (in this case <scp> task is unknown for ant)
  2. Adjust libraries versions, so ant-jsch.jar and jsch are compatible.
  3. jsch not exists or out of date in ant lib dir
  4. Native ant-jsch.jar replaced with jsch (i did it...)

In last 2 cases ant knows scp command, but says it is not available.

对岸观火 2024-08-30 20:53:59

从诊断顶部来看,这看起来像是您的问题:

可选任务:不可用

您的 $ANT_HOME/lib 目录缺少 ant-jsch.jar,这是您缺少的类的来源。

我不确定这是怎么发生的 - 我总是从 下载站点 上的 ZIP 文件安装 Ant ,其中包括所有可选任务。如果您从 Linux 软件包安装 Ant,请尝试检查是否有用于可选任务的单独软件包。

安装可选任务后,我将按照 @trashgod 的建议删除旧版本的 jsch.jar。

This looks like your problem, from the top of the diagnostics:

optional tasks : not available

Your $ANT_HOME/lib directory is missing ant-jsch.jar, which is where your missing class comes from.

I'm not sure how this happened - I always install Ant from the ZIP file on the download site, which includes all the optional tasks. If you installed Ant from a Linux package, try checking to see if there is a separate package for the optional tasks.

Once you get the optional tasks installed, I would delete the old version of jsch.jar as @trashgod suggests.

花开雨落又逢春i 2024-08-30 20:53:59

我在 maven pom.xml 中添加了 ant-jsch 和 jsch 依赖项,或者在构建中包含这两个 jar 解决了问题。

I added ant-jsch and jsch dependencies in maven pom.xml or including those two jars in build solved the issue.

橘和柠 2024-08-30 20:53:59

执行以下命令:

 sudo yum install ant-jsch.noarch

Execute the following command:

 sudo yum install ant-jsch.noarch
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文