【发布时间】:2012-02-22 17:45:45
【问题描述】:
我正在做一个项目,它依赖于 mahout 和 hadoop 核心 jar 中的某些类。我之前使用 javac 和 classpath 选项来包含它们,但有人建议我应该使用 maven 来构建我的项目。但是,我不确定如何将依赖项添加到位于我的 /usr/local 目录中的这些 jar 文件中。
【问题讨论】:
我正在做一个项目,它依赖于 mahout 和 hadoop 核心 jar 中的某些类。我之前使用 javac 和 classpath 选项来包含它们,但有人建议我应该使用 maven 来构建我的项目。但是,我不确定如何将依赖项添加到位于我的 /usr/local 目录中的这些 jar 文件中。
【问题讨论】:
<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>
【讨论】:
将此添加到您的 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>
如果您有一个 jar 副本用于上面的 hadoop 示例,请执行以下命令:
mvn install:install-file -Dfile=/some/path/my-hadoop.jar -DgroupId=some.group -DartifactId=hadoop -Dversion=some.version -Dpackaging=jar
【讨论】:
查看 maven 文档,尤其是依赖管理部分。如果你想使用 Maven,你应该了解基础知识(其中之一是依赖管理)。
基本上,您在 pom.xml 的 <dependencies> 部分中定义项目的依赖项。查找您想要的依赖项的 maven Central(最常见的在线存储库)或搜索可能包含它们的其他在线存储库。
如果你找不到它们,无论如何添加你想要的依赖项(想想一个合理的组 id、工件 id 和版本)并尝试编译。 Maven 将抱怨缺少依赖项,并提供一个基本命令将这些依赖项放入本地存储库。复制这些命令并填写 jar 文件的适当路径,maven 将在本地存储库中部署该依赖项。
请注意,您应该首先在在线存储库中查找依赖项,否则您必须在本地存储库中手动部署每个新版本。
【讨论】: