如何在maven中引用hadoop v2.3.0 jars?

时间:2014-03-06 16:20:47

标签: maven hadoop maven-3

我只是想在我的maven项目中引用hadoop mapreduce jar。我发现这样做的方式发布在http://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce/2.3.0

我的pom具有以下依赖性。

<dependency>
 <groupId>org.apache.hadoop</groupId>
 <artifactId>hadoop-mapreduce</artifactId>
 <version>2.3.0</version>
</dependency>

然而,在eclipse中,我看到以下错误。

  1. 容器'Maven Dependencies'引用不存在的库C:\Users\root\.m2\repository\org\apache\hadoop\hadoop-mapreduce\2.3.0\hadoop-mapreduce-2.3.0.jar
  2. 在解决构建路径错误之前无法构建项目
  3. 缺少工件org.apache.hadoop:hadoop-mapreduce:jar:2.3.0
  4. 如何在maven中引用hadoop v2.3.0 jar?

    当我输入以下命令时

    mvn clean install -e -X -U

    我看到以下输出

    Could not find artifact org.apache.hadoop:hadoop-mapreduce:jar:2.3.0 in central (http://repo.maven.apache.org/maven2)

    关于这里发生了什么的任何想法?

    顺便说一下,我的~/.m2/settings.xml没有被“篡改”过。它仍然是放置在那里的默认值。

    这里有关于我的maven版本的一些信息。

    mvn -version
    Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 08:51:28-0500)
    Maven home: C:\Program Files (x86)\apache-maven-3.0.5\bin\..
    Java version: 1.7.0_13, vendor: Oracle Corporation
    Java home: C:\Program Files\Java\jdk1.7.0_13\jre
    Default locale: en_US, platform encoding: Cp1252
    OS name: "windows 8", version: "6.2", arch: "amd64", family: "windows"
    

    感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

这是有效的(通知类型是pom,因为这是其他模块的容器):

  <dependency>
 <groupId>org.apache.hadoop</groupId>
 <artifactId>hadoop-mapreduce</artifactId>
 <version>2.3.0</version>
 <scope>provided</scope>
 <type>pom</type>
  </dependency>

但通常我使用的开发(它打包所有相关的依赖项):

  <dependency>
 <groupId>org.apache.hadoop</groupId>
 <artifactId>hadoop-client</artifactId>
 <version>2.3.0</version>
 <scope>provided</scope>
 <type>jar</type>
  </dependency>