You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nutch 1.14执行ant runtime时ivy:resolve失败求助

Nutch 1.14 构建时 Ivy 依赖问题的解决方案

核心问题回应

首先明确:Nutch 1.14 官方构建流程深度依赖 Ivy 进行依赖管理,完全绕开 Ivy 几乎不可行。手动收集所有依赖、修改 Ant 脚本移除 Ivy 任务的工作量极大,还容易出现依赖版本冲突、缺失等问题,不建议尝试。我们还是聚焦于解决当前的 Ivy 报错问题。

环境信息确认

  • Java: java version "1.8.0_141" Java(TM) SE Runtime Environment (build 1.8.0_141-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)
  • Ant: Apache Ant(TM) version 1.10.1 compiled on February 2 2017
  • Nutch: 1.14 源码包

错误分析

初始错误:Maven 中央仓库连接超时

从日志看,Ivy 无法访问 repo1.maven.org 下载 slf4j-api:1.6.1 的 POM 文件,触发了 Connection timed out 异常,这通常是网络不通、防火墙限制或者代理未配置导致的。

后续错误:主机名异常依赖查找

手动下载依赖后出现的 working@MYHOSTNAME 相关错误,是因为 Ivy 的依赖版本被错误替换,大概率是缓存损坏或者配置文件被意外修改导致的。

分步解决方案

1. 修复网络连接问题(解决超时)

方案一:切换国内 Maven 镜像

修改 Nutch 源码目录下的 ivy/ivysettings.xml 文件,将默认的 Maven 中央仓库替换为国内镜像(比如阿里云):

<!-- 找到原有的 maven2 resolver,替换 root 属性 -->
<ibiblio name="maven2" m2compatible="true" root="http://maven.aliyun.com/nexus/content/groups/public/"/>

方案二:配置代理(如果处于代理环境)

如果你的机器需要通过代理访问外网,执行 Ant 命令时添加代理参数:

ant -Dhttp.proxyHost=你的代理地址 -Dhttp.proxyPort=代理端口 runtime

如果代理需要认证,再加上:

ant -Dhttp.proxyHost=你的代理地址 -Dhttp.proxyPort=代理端口 -Dhttp.proxyUser=用户名 -Dhttp.proxyPassword=密码 runtime

2. 修复主机名异常依赖问题

步骤一:清理 Ivy 缓存

删除本地 Ivy 缓存目录,避免损坏的缓存干扰:

rm -rf ~/.ivy2/cache

步骤二:检查并恢复 Ivy 配置

  • 重新解压 Nutch 1.14 源码包,确保 ivy.xml 和 ivysettings.xml 是原始状态,没有被错误修改。
  • 重新执行 ant runtime,让 Ivy 重新下载所有依赖。

验证

完成上述步骤后,再次执行 ant runtime,如果一切正常,Ivy 会成功下载所有依赖,Ant 会完成 Runtime 环境的构建。

内容的提问来源于stack exchange,提问作者Quent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:52:17