我正在做一个项目,它依赖于mahout和hadoop核心罐的一些类。我使用javac和classpath选项来包含它们,但有人向我建议我应该使用maven来构建我的项目。但是,我不确定如何将这些依赖关系添加到位于我的/ usr/local目录中的这些jar文件。如何添加mahout和hadoop的maven依赖关系?
3
A
回答
-1
查看maven文档,特别是关于依赖管理的部分。如果你想使用Maven,你应该了解基础知识(其中之一是依赖管理)。
基本上你可以在你的pom的<dependencies>
部分定义你的项目的依赖关系。查找maven central(最常见的联机存储库)以查找所需的依赖关系或搜索可能包含它们的其他联机存储库。
如果找不到它们,请添加您想要的依赖关系(想想一个合理的组标识,工件标识和版本)并尝试编译。 Maven会抱怨缺失的依赖关系,并提供一个基本命令将这些依赖关系放入本地存储库。复制这些命令并填入jar文件的适当路径,maven将在您的本地存储库中部署该依赖项。
请注意,您应该首先查找联机存储库中的依赖关系,否则您必须在本地存储库中手动部署每个新版本。
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>
要添加到这个答案,使用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
@BrentWorden yes,search。 maven.org是maven central的入口点。但是,有时您并未在其中找到较新的版本或工件,因为开发人员更改了它们部署的回购站。因此,我通常首先检查一下库的当前版本,然后查找确切的版本 - 首先在maven中,然后是其他版本库(通常使用我的亲爱的朋友google :))。 – Thomas 2012-01-31 07:49:13