2011-06-24 21 views
0

我有一個項目,我正在從ant遷移到maven。該項目使用輕度定製的Hive構建。我想我只是將這個構建導入到我們內部的maven倉庫中,並將其列爲項目的pom文件中的依賴項。我遇到的問題是Hive構建只是在build/dist/lib中生成一堆jar。其中一些是Hive核心本身,另一些是Hive依賴的罐子。處理這些問題的最佳方法是什麼?我是否應該將所有核心蜂巢罐放入我們的內部倉庫,並且只處理新項目的pom文件中未記錄的依賴關係?或者把所有東西都打成一罐罐子,然後將其部署到回購站點?這種方法甚至可以工作嗎?還是一個maven新手,謝謝你的幫助。在Maven項目中使用Hive

回答

1

您應該爲修改過的Hive構建創建一個POM,並將其與jar一起部署到您的內部工件回購庫中。這個POM應該指定任何依賴關係(即那些其他的罐子)。如果其中一些還是自定義版本,那麼您應該爲這些創建POM,否則只需使用標準的公共groupId/artifactId。這是Maven的方式。請注意,在部署期間,您不一定需要使用POM來構建Hive。

爲什麼你應該這樣做:

  • 如果不正確地指定的依賴關係,則可能會在有人忘了包括全套依賴於他們的項目,或指定了錯誤的版本遇到問題其中之一
  • 如果您創建了一罐jar,那麼當有人試圖同時使用自定義Hive「uber jar」以及這些依賴關係的不同版本時,可能會遇到問題。您將在類路徑中得到多個重疊類的版本。

對於Maven來說最好的事情總是如果你告訴它所發生的一切。不要試圖告訴它你認爲它想聽到什麼。