Вы должны прочитать о том, как работает Maven. Существует отличный бесплатный PDF-файл под названием Better Builds с Maven , который объяснит все это в деталях, однако вот краткий обзор, который поможет вам в этом.
Maven - это система сборки
Так что он управляет тем, как построить ваш проект. Это происходит из деталей конфигурации, которые вы помещаете в pom.xml. Вы определили зависимости, и Maven знает, как их найти, в результате либо вы настраиваете эти расположения, либо Maven полагается на свои собственные расположения по умолчанию. (Отсюда http://repo1.maven.org/maven2/).
Maven строится в определенных фазах, каждая из которых зависит от предыдущей. Для того, чтобы это (упрощено для удобства представления):
- Очистить - стереть все предыдущие работы по компиляции (обычно в «цели») и начать заново
- Копировать ресурсы - копировать все в src / main / resources в target / classes
- Compile - скомпилировать все в src / main / java для target / classes
- Test - запустить тесты в src / test / java (используя src / test / resources, если требуется)
- Пакет - создание целевого артефакта (JAR, WAR, EAR и т. Д.)
- Установить - поместить артефакт в локальный репозиторий (чтобы поделиться с другими локальными проектами)
- Развертывание - поместите артефакт в командный репозиторий (чтобы поделиться со всеми)
Из вышесказанного должно быть ясно, что указание Hibernate3 в качестве зависимости в вашем Maven pom.xml заставит Maven отключиться и поискать в вашем локальном хранилище необходимые JAR-файлы, составляющие Hibernate. Если он не может найти их там, он будет выглядеть в репозитории команды (если он указан в вашем файле .m2 / settings.xml). Если его нет, он загрузит их из Maven central (http://repo1.maven.org/maven2/).
Maven использует концепцию транзитивных зависимостей, означающую, что ваш проект зависит от Hibernate, но Hibernate зависит от CGLIB, который, в свою очередь, зависит, скажем, от ANTLR или чего-то еще. Вам не нужно об этом думать, Maven позаботится о том, чтобы собрать все соответствующие JAR-файлы, необходимые для работы вашего проекта.