我正在做一个项目,该项目依赖于mahout和hadoop核心jar中的一些类。我以前使用带有classpath选项的javac来包含它们,但有人建议我应该使用maven来构建我的项目。但是,我不知道如何将依赖项添加到这些jar文件中,这些jar文件位于我的/usr/local目录中。
<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的<dependencies>
部分中定义项目的依赖项。在maven-central(最常见的在线存储库)中查找您想要的依赖项,或者搜索可能包含这些依赖项的其他在线存储库。
如果找不到它们,请添加所需的依赖项(考虑一个合理的组id、工件id和版本),然后尝试编译。Maven将抱怨缺少依赖项,并提供一个将这些依赖项放入本地存储库的基本命令。复制这些命令并填写jar文件的适当路径,maven将在本地存储库中部署该依赖项。
请注意,您应该首先在在线存储库中查找依赖项,否则您将不得不在本地repo中手动部署每个新版本。