Использование Hive в проекте Maven - PullRequest
0 голосов
/ 25 июня 2011

У меня есть проект, который я перевожу с муравья на мавена.В проекте используется слегка адаптированная сборка Hive.Я подумал, что просто импортирую эту сборку в наше внутреннее хранилище maven и внесу ее в список зависимостей в pom-файле проекта.Проблема, с которой я сталкиваюсь, заключается в том, что сборка Hive просто генерирует несколько jar-файлов в build / dist / lib.Некоторые из них являются основными банками Hive, а некоторые - банками, от которых зависит Hive.Какой лучший способ справиться с этим?Должен ли я поместить все основные банки кустов в наше внутреннее хранилище и просто разобраться с недокументированными зависимостями в файле pom нового проекта?Или просто собрать все как банку с банками и развернуть в репо?Будет ли этот подход даже работать?Что-то вроде новичка Мэйвена, спасибо за любую помощь.

1 Ответ

1 голос
/ 27 июня 2011

Вы должны создать POM для вашей модифицированной сборки Hive и развернуть его во внутреннем репо с артефактами вместе с банкой. Это POM должно указывать любые зависимости (то есть те другие jar-файлы). Если некоторые из них также являются пользовательскими версиями, вы также должны создать POM для них, в противном случае просто используйте стандартный public groupId / artifactId. Это путь Maven. Обратите внимание, что вам не обязательно использовать POM для сборки Hive, только во время развертывания.

Почему вы должны это сделать:

  • Если вы не укажете зависимости правильно, у вас могут возникнуть проблемы, когда кто-то забудет включить полный набор зависимостей в свой проект или укажет неверную версию для одной из них
  • Если вы создаете банку банок, вы можете столкнуться с проблемами, когда кто-то попытается использовать пользовательский «Uber Jar» Hive, а также другую версию одной из этих зависимостей одновременно. Вы получите несколько версий перекрывающихся классов в classpath.

Лучшее для Maven всегда, если вы расскажете обо всем, что происходит. Не пытайтесь сказать то, что, по вашему мнению, оно хочет услышать.

...