Maven 无法解析 hadoop 项目的依赖项

标签 maven hadoop mapreduce

我想从 hadoop 构建示例项目书,但我收到“无法解决依赖项错误”。 这是我在构建过程中的错误:

[INFO] Building Chapter 2: MapReduce 3.0
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.apache.hadoop:hadoop-core:jar:0.23.10 is missing, no dependency information available
[WARNING] The POM for org.apache.hadoop:hadoop-test:jar:0.23.10 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] Chapter 2: MapReduce .............................. FAILURE [1.409s]
[INFO] Hadoop: The Definitive Guide, Example Code ........ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.819s
[INFO] Finished at: Wed May 14 12:19:14 EEST 2014
[INFO] Final Memory: 6M/67M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project ch02: Could not resolve dependencies for project com.hadoopbook:ch02:jar:3.0: The following artifacts could not be resolved: org.apache.hadoop:hadoop-core:jar:0.23.10, org.apache.hadoop:hadoop-test:jar:0.23.10: Failure to find org.apache.hadoop:hadoop-core:jar:0.23.10 in https://repository.apache.org/content/repositories/releases/ was cached in the local repository, resolution will not be reattempted until the update interval of apache.releases has elapsed or updates are forced -> [Help 1]

这是我的 ch02 项目的 pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.hadoopbook</groupId>
    <artifactId>hadoop-meta</artifactId>
    <version>3.0</version>
    <relativePath>../hadoop-meta/pom.xml</relativePath>
  </parent>
  <groupId>com.hadoopbook</groupId>
  <artifactId>ch02</artifactId>
  <packaging>jar</packaging>
  <version>3.0</version>
  <name>Chapter 2: MapReduce</name>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>
    <dependency>
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-all</artifactId>
    </dependency>
  </dependencies>
</project>

知道如何使用 Maven 构建此代码以及问题是什么吗? 谢谢

最佳答案

发生的事情是 Maven 无法在远程存储库中找到它要查找的内容。所以当它到达 Apache's Maven repository 时它只是找不到版本 0.23.10 hadoop-test 的资源。

特别是问题 <relativePath>../hadoop-meta/pom.xml</relativePath> 中 pom 文件的第 8 行正在引导 Maven 查看 hadoop-meta/pom.xml .在第 48 行到第 50 行,您将看到 hadoop-test 存储库的规范:

<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-test</artifactId>
<version>${hadoop.version}</version>

那个${hadoop.version}是您在 maven 命令中指定的值,即 0.23.10 . 然后 maven 去 Apache 仓库寻找 hadoop-test v0.23.10 ,这是不存在的。所以 Maven 倒下了。

现在,如果您使用了 hadoop-test 中存在的版本,或者如果您更改了 pom 文件以使 hadoop-test 不再依赖。

关于Maven 无法解析 hadoop 项目的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23651570/

相关文章:

hadoop - 使用分布式缓存读取文件

hadoop - 无法在 Hive 中创建表

mapreduce - Avro 入门

java - 导入的 maven 项目不显示为 java 项目。显示文件夹

java - "The import org.springframework cannot be resolved."

bash - 计算 HDFS 文件夹中具有给定扩展名的文件数

hadoop - map 减少java程序的澄清

java - 分析多个输入文件并只输出一个包含一个最终结果的文件

maven - 相当于 mvn clean verify 的 Gradle

java - maven和java 1.7的相互依赖不允许使用Java 1.8安装maven