Как узнать, какие зависимости нужно включить? - PullRequest
5 голосов
/ 25 ноября 2011

Я довольно новичок в Java / Spring и пытаюсь собрать простое приложение, которое будет включать некоторые базовые операции CRUD, и я хотел бы использовать Hibernate для доступа к данным.

Я используюMaven как мой инструмент для сборки.Мой вопрос: как я могу узнать, какие зависимости необходимы для использования Hibernate?Например, я использую Spring 3.0.6, но как узнать, какую версию Hibernate использовать с этой версией Spring?Более того, если есть несколько возможных зависимостей Hibernate, как я узнаю, какие из них включить для нужной мне функциональности?Пока что это, кажется, частично чтение документации и частично проб и ошибок.

Есть ли определенный способ узнать, какие зависимости Maven использовать с определенной версией других зависимостей?Любые, какие зависимости использовать для конкретных битов функциональности?

Спасибо,

Джеймс.

Ответы [ 4 ]

4 голосов
/ 25 ноября 2011

Я следую этим шагам, когда начинаю использовать новый фреймворк:

  1. Перейти на сайт фреймворка. В вашем случае hibernate веб-сайт и попробуйте найти последнюю (или конкретную) версию. Для спящего режима это 3.6.8-Финал на момент написания.
  2. Поиск определения зависимости maven на веб-сайте фреймворка. Если вы не можете найти какое-либо определение зависимости, просто найдите в Google « frameworkname _version_ maven зависимость», и вы, скорее всего, найдете необходимое определение, а также необходимую информацию о хранилище. Например, вы можете найти определение зависимости для hibernate на mvnrepository.com и необходимую информацию о хранилище артефактов на Страница выпуска Hibernate 3.6.8 :

    Все артефакты были опубликованы в репозитории JBoss Nexus в org.hibernate groupId по адресу http://repository.jboss.org/nexus/content/groups/public-jboss/

  3. Вопрос о том, какие зависимости необходимы, а какие являются необязательными, полностью зависит от используемой платформы. Например, для использования hibernate, как указано в Краткое руководство по Hibernate :

    hibernate-core: основной артефакт, содержащий все классы Hibernate, в packageorg.hibernate. Они нужны вам для создания приложений с использованием собственных API Hibernate. Он включает в себя возможности использования собственного отображения Hibernate в файлах hbm.xml, а также аннотации.

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

1 голос
/ 25 ноября 2011

Цель Maven - избежать обработки зависимостей вручную.Просто выберите, какую версию Hibernate использовать, и включите ее в свой pom;Spring поддерживает много разных версий.

Если вы знаете, какие части Spring вы хотите использовать, просто включите эти части в свой pom;они будут включать свои собственные требования.

Есть ли конкретная комбинация модуля и / или версии, с которой у вас возникла проблема?

0 голосов
/ 25 ноября 2011

Принятие новейших обычно работает до тех пор, пока они стабильны.

Начните с гибернации и пружинного ядра, context, tx.

После того, как вы добавите некоторые из них, вы, вероятно, узнаете что-тоеще отсутствует.

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

0 голосов
/ 25 ноября 2011

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

Вы можете узнать зависимости, запустив mvn dependency:tree и проанализировать, требуются ли они илине работает mvn dependency:analyze.

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