2013-12-13 48 views
0

我有一個使用mahout-0.8依賴關係的本地pom。 Mahout pom包含1.1.2版本的hadoop核心依賴項。 Link to mahout-0.8 pom如何從遠程mavenpom中排除依賴關係?

但在我的項目,我需要最新的Hadoop的核心,這是2.2.0版本。正如我已閱讀Hadoop的核心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整合到我的本地項目中。 非常感謝!

回答

2

複製Hadoop的核心依賴於你的第二個片段到您的pom的dependencyManagement部分。這將管理它到你指定的任何版本。

或者,如果你真的想從象夫來一起阻止它,改變你的象夫依賴於類似以下內容:

<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> 
+0

是的,你說得對,我知道這個功能。但是,就我而言,我需要從mahout中刪除這個hadoop-core依賴項,因爲有些類是舊的。我不再需要它了。 1.1.2是hadoop-core的最後一個版本。 – elkoo

+0

管理該依賴的版本將意味着maven將引入您指定的版本(因此不會包含舊版本)。所以我不完全明白你爲什麼要刪除它,但我已經編輯了我的答案,以表明你會怎麼做。 – stripybadger

+0

謝謝,這正是我想要做的。非常感謝! – elkoo

相關問題