Как вы управляете zillion JAR-файлами Hibernate - PullRequest
3 голосов
/ 18 марта 2009

Для моего предыдущего работодателя я работал с Hibernate, и теперь, когда я нахожусь в небольшом стартапе, я хотел бы использовать его снова. Однако загрузка как ядра Hibernate, так и дистрибутивов аннотаций Hibernate довольно трудна, так как требует объединения lot файлов JAR вместе. Поскольку JAR-файлы разбиты на такие категории, как «обязательный» и «необязательный», я предполагаю, что каждый разработчик в конечном итоге получает различное содержимое своей папки lib.

Каков общий способ решения этой проблемы? По сути, я хочу иметь формальный способ получить все JAR-файлы для Hibernate, чтобы (в теории) я получал точно такой же материал, если бы мне снова понадобился другой проект в следующем месяце.

Редактировать: Я примерно знаю, что делает Мейвен, но мне было интересно, есть ли другой способ управлять такими вещами.

Ответы [ 5 ]

4 голосов
/ 18 марта 2009

Как уже упоминал Аарон, Maven - вариант.

Если вы хотите что-то более гибкое, вы можете использовать Apache Ant с Ivy .

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

2 голосов
/ 18 марта 2009

Возможно, это не очень хороший ответ, но я действительно не вижу проблем с зависимостями Hibernate. Вместе с hibernate3.jar необходимо иметь:

  1. 6 обязательных jar-файлов, из которых commons-collection, dom4j и slf4j чаще используются в других проектах с открытым исходным кодом
  2. 1 банок javassist или CGLIB
  3. в зависимости от кэша и пула подключений, до 2 файлов JAR, которые в значительной степени зависят от Hibernate

Итак, в худшем случае у вас будет максимум 10 банок, включая собственную банку Hibernate. И из них только другие коллекции, dom4j и slf4j, вероятно, будут использоваться какой-то другой библиотекой в ​​вашем проекте. Это едва ли zillion, им можно легко управлять, и, конечно же, не стоит использовать «слона», такого как Maven.

1 голос
/ 18 марта 2009

Одно предостережение при использовании Maven или Ivy для управления зависимостями заключается в том, что качество хранилища напрямую влияет на ваш опыт сборки. Если репозиторий недоступен или метаданные для артефактов (pom.xml или ivy.xml) неверны, вы не сможете построить. Создание собственного локального репозитория требует некоторой работы, но, вероятно, стоит усилий. Например, у Ivy есть задача ANT, которая импортирует артефакты из репозитория Maven и публикует их в собственном репозитории Ivy. Получив локальную копию репозитория Maven, вы можете настроить метаданные в соответствии с любой схемой, которую вы считаете целесообразной для использования. Иногда последняя и самая лучшая версия отсутствует в публичном хранилище, что иногда может быть проблемой.

1 голос
/ 18 марта 2009

Я использую Maven 2 и он позволяет мне управлять своими зависимостями.

0 голосов
/ 18 марта 2009

Полагаю, вы явно используете API Hibernate? Можно ли использовать стандартный API, скажем JPA, и позволить контейнеру J2EE управлять реализацией за вас?

В противном случае используйте Maven или Ivy, в зависимости от выбранной вами системы сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...