Пакет выпуска Hibernate и pom.xml: настройка среды разработки - PullRequest
0 голосов
/ 07 декабря 2010

Я новичок в Hibernate 3, и я не понимаю разницу между
1) *http://sourceforge.net/projects/hibernate/files/hibernate3/
и
2) *https://repository.jboss.org/nexus/content/groups/public/
, когда дело доходит до компиляции файлов учебника Hibernate.
Я следую учебному пособию по Hibernate из *http://docs.jboss.org/hibernate/core/3.6/quickstart/en-US/html_single/

Как я понимаю, для Hibernate 3. нет setup.exe. Я предполагаю, что вместо setup.exe мне нужно установить classpath для получения моего Hibernate3 установлено.Я скачал релиз Hibernate из списка на *http://sourceforge.net/projects/hibernate/files/hibernate3/. Это более 140 МБ.После распаковки этого файла размером 140 МБ я не установил никаких путей к классам.

Я скачал код учебника из *http://docs.jboss.org/hibernate/core/3.6/quickstart/en-US/html_single/files/hibernate-tutorials.zip,, распаковал его и отредактировал pom.xml таким образом, чтобы в этом учебнике использовались два репозитория, такие как
1) *http://repo1.maven.org/maven2/
и
2) *https://repository.jboss.org/nexus/content/groups/public/

Затем я набрал mvn compile, и сборка прошла успешно!

Как это возможно, что эта сборка была успешной?Я не установил никаких путей к классам, что означает, что Hibernate 3 (этот файл размером 140 МБ) не был включен в путь к классам моего проекта.Более того, я не понимаю, что значит включить в classpath моего проекта?Означает ли это, что в Windows XP я должен установить переменные окружения, такие как:
1) путь / к / hibernate3.jar
2) путь / к / lib / required /
3) путь / к / lib /jpa /
Когда я добавил эти три пути к переменным окружения, это ничего не изменило - компиляция mvn работала так же, как и раньше.Неправильно ли я установил этот classpath?

На мой взгляд, мне кажется, что совсем не нужно загружать Hibernate 3 (140 МБ) и все файлы, необходимые для его сборки.Приложение hibernate (учебный файл) успешно загружено из репозиториев.

Что я неправильно понимаю?

Заранее спасибо!

1 Ответ

0 голосов
/ 08 декабря 2010

Вы должны прочитать о том, как работает Maven. Существует отличный бесплатный PDF-файл под названием Better Builds с Maven , который объяснит все это в деталях, однако вот краткий обзор, который поможет вам в этом.

Maven - это система сборки

Так что он управляет тем, как построить ваш проект. Это происходит из деталей конфигурации, которые вы помещаете в pom.xml. Вы определили зависимости, и Maven знает, как их найти, в результате либо вы настраиваете эти расположения, либо Maven полагается на свои собственные расположения по умолчанию. (Отсюда http://repo1.maven.org/maven2/).

Maven строится в определенных фазах, каждая из которых зависит от предыдущей. Для того, чтобы это (упрощено для удобства представления):

  1. Очистить - стереть все предыдущие работы по компиляции (обычно в «цели») и начать заново
  2. Копировать ресурсы - копировать все в src / main / resources в target / classes
  3. Compile - скомпилировать все в src / main / java для target / classes
  4. Test - запустить тесты в src / test / java (используя src / test / resources, если требуется)
  5. Пакет - создание целевого артефакта (JAR, WAR, EAR и т. Д.)
  6. Установить - поместить артефакт в локальный репозиторий (чтобы поделиться с другими локальными проектами)
  7. Развертывание - поместите артефакт в командный репозиторий (чтобы поделиться со всеми)

Из вышесказанного должно быть ясно, что указание Hibernate3 в качестве зависимости в вашем Maven pom.xml заставит Maven отключиться и поискать в вашем локальном хранилище необходимые JAR-файлы, составляющие Hibernate. Если он не может найти их там, он будет выглядеть в репозитории команды (если он указан в вашем файле .m2 / settings.xml). Если его нет, он загрузит их из Maven central (http://repo1.maven.org/maven2/).

Maven использует концепцию транзитивных зависимостей, означающую, что ваш проект зависит от Hibernate, но Hibernate зависит от CGLIB, который, в свою очередь, зависит, скажем, от ANTLR или чего-то еще. Вам не нужно об этом думать, Maven позаботится о том, чтобы собрать все соответствующие JAR-файлы, необходимые для работы вашего проекта.

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