我有一个项目,我正在从 ant 迁移到 maven。该项目使用了轻度定制的 Hive 构建。我想我只需将此构建导入我们的内部 maven 存储库,并将其列为项目 pom 文件中的依赖项。我遇到的问题是 Hive 构建只是在 build/dist/lib 中生成了一堆 jar。其中一些是核心 Hive jar 本身,一些是 Hive 所依赖的 jar。处理这些问题的最佳方法是什么?我是否应该将所有核心 hive jar 放入我们的内部 repo 并只处理新项目的 pom 文件中未记录的依赖项?或者只是把所有东西都装成一罐罐子,然后把它部署到 repo 中?这种方法会奏效吗?仍然是一个行家新手,感谢您的帮助。
问问题
762 次
1 回答
1
您应该为修改后的 Hive 构建创建一个 POM,并将其与 jar 一起部署到您的内部工件 repo。这个 POM 应该指定任何依赖项(即,那些其他 jars)。如果其中一些也是自定义版本,您也应该为它们创建 POM,否则只需使用标准的公共 groupId/artifactId。这是 Maven 方式。请注意,您不一定需要在部署期间使用 POM 来构建 Hive。
为什么你应该这样做:
- 如果您没有正确指定依赖项,当有人忘记在他们的项目中包含完整的依赖项集或为其中一个指定错误的版本时,您可能会遇到问题
- 如果您创建一个 jar 罐,当有人尝试同时使用自定义 Hive“uber jar”以及其中一个依赖项的不同版本时,您可能会遇到问题。您最终会在类路径中得到多个版本的重叠类。
对 Maven 来说最好的事情总是告诉它正在发生的一切。不要试图告诉它你认为它想听什么。
于 2011-06-27T01:37:19.063 回答