我有一个使用mahout-0.8依赖的本地pom。 Mahout pom包括hadoop-core依赖1.1.2版本。 Link to mahout-0.8 pom
但在我的项目中,我需要最新的hadoop-core,即2.2.0版本。正如我所读到的,hadoop-core-2.2.0是从这些依赖项构建的:
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>2.2.0</version>
</dependency>
所以我需要从远程mahout-0.8 dependency中排除依赖关系。如何排除这种依赖(剪切)或无法远程完成?
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>${hadoop.version}</version>
...
</dependency>
如果不能以这种方式完成,想知道如何将mahout pom集成到我的本地项目中。 非常感谢!
答案 0 :(得分:2)
将第二个代码段中的hadoop-core依赖项复制到pom的dependencyManagement
部分。这会将其管理为您指定的任何版本。
或者,如果你真的想要阻止它从mahout一起来,请将你的mahout依赖关系改为:
<dependency>
<groupId>org.apache.mahout</groupId>
<artifactId>mahout</artifactId>
<version>0.8</version>
<exclusions>
<exclusion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
</exclusion>
</exclusions>
</dependency>