如何从远程mavenpom中排除依赖?

时间:2013-12-13 15:14:34

标签: maven dependencies pom.xml

我有一个使用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集成到我的本地项目中。 非常感谢!

1 个答案:

答案 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>