在maven项目中使用Hive

时间:2011-06-24 23:55:49

标签: maven-2 maven hive

我有一个项目,我正在从ant迁移到maven。该项目使用轻度定制的Hive构建。我想我只是将这个构建导入我们的内部maven repo并将其列为项目的pom文件中的依赖项。我遇到的问题是Hive构建只在build / dist / lib中生成了一堆jar。其中一些是核心Hive罐子本身,有些是Hive依赖的罐子。处理这些问题的最佳方法是什么?我应该将所有核心蜂巢罐放入我们的内部仓库并只处理新项目的pom文件中的未记录的依赖项吗?或者只是将所有东西都装罐作为一罐罐子并将其部署到回购中?这种方法是否有效?还有一个maven新手,谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您应该为修改后的Hive构建创建一个POM,并将其与jar一起部署到内部工件仓库。此POM应指定任何依赖项(即其他jar)。如果其中一些也是自定义版本,您也应该为这些创建POM,否则只需使用标准的public groupId / artifactId。这是Maven的方式。请注意,在部署期间,您不一定需要使用POM来构建Hive。

为什么你应该这样做:

  • 如果您没有正确指定依赖项,当有人忘记在项目中包含完整的依赖项集,或者为其中一个指定了错误的版本时,可能会遇到问题
  • 如果您创建了一罐jar,当有人试图同时使用自定义Hive“超级jar”以及其中一个依赖项的不同版本时,您可能会遇到问题。您最终将在类路径中使用多个版本的重叠类。

对于Maven来说,最好的事情就是告诉它一切正在发生的事情。不要试图告诉它你认为它想听到什么。