2012-01-30 144 views
3

我正在做一个项目,它依赖于mahout和hadoop核心罐的一些类。我使用javac和classpath选项来包含它们,但有人向我建议我应该使用maven来构建我的项目。但是,我不确定如何将这些依赖关系添加到位于我的/ usr/local目录中的这些jar文件。如何添加mahout和hadoop的maven依赖关系?

回答

-1

查看maven文档,特别是关于依赖管理的部分。如果你想使用Maven,你应该了解基础知识(其中之一是依赖管理)。

基本上你可以在你的pom的<dependencies>部分定义你的项目的依赖关系。查找maven central(最常见的联机存储库)以查找所需的依赖关系或搜索可能包含它们的其他联机存储库。

如果找不到它们,请添加您想要的依赖关系(想想一个合理的组标识,工件标识和版本)并尝试编译。 Maven会抱怨缺失的依赖关系,并提供一个基本命令将这些依赖关系放入本地存储库。复制这些命令并填入jar文件的适当路径,maven将在您的本地存储库中部署该依赖项。

请注意,您应该首先查找联机存储库中的依赖关系,否则您必须在本地存储库中手动部署每个新版本。

+1

要添加到这个答案,使用http://search.maven.org/轻松找到你需要的工件。一旦找到工件,您应该找到需要添加到项目pom中的确切依赖项元素。例如,hadoop-core 1.0的依赖关系信息可以在http://search.maven.org/#artifactdetails%7Corg.apache.hadoop%7Chadoop-core%7C1.0.0%7Cjar找到 – 2012-01-31 01:12:53

+0

@BrentWorden yes,search。 maven.org是maven central的入口点。但是,有时您并未在其中找到较新的版本或工件,因为开发人员更改了它们部署的回购站。因此,我通常首先检查一下库的当前版本,然后查找确切的版本 - 首先在maven中,然后是其他版本库(通常使用我的亲爱的朋友google :))。 – Thomas 2012-01-31 07:49:13

2

添加到您的POM:

<dependencies> 
    <dependency> 
     <groupId>org.apache.mahout</groupId> 
     <artifactId>mahout-core</artifactId> 
     <version>0.5</version> 
    </dependency> 
    <dependency> 
     <groupId>some.group</groupId> 
     <artifactId>hadoop</artifactId> 
     <version>some.version</version> 
    </dependency> 
</dependencies> 

如果你有用于上面说的hadoop例如罐子的副本,执行以下命令:

mvn install:install-file -Dfile=/some/path/my-hadoop.jar -DgroupId=some.group -DartifactId=hadoop -Dversion=some.version -Dpackaging=jar 
5
<dependency> 
      <groupId>org.apache.hadoop</groupId> 
      <artifactId>hadoop-core</artifactId> 
      <version>0.20.205.0</version> <!-- or whatever version --> 
     </dependency> 
    <dependency> 
     <groupId>org.apache.mahout</groupId> 
     <artifactId>mahout-core</artifactId> 
     <version>0.5</version> 
    </dependency>