4.1 dependency

Теперь давай разберем еще одну вещь, которая сделала maven таким популярным – управление зависимостями.

Если хочешь добавить в свой Maven-проект какую-нибудь библиотеку, тебе просто нужно добавить ее в pom-файл, в раздел dependencies. Выглядит это до банальности просто.

Давай добавим в наш проект последнюю версию Spring и Hibernate. Вот как это будет выглядеть:

<dependencies>
 
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
	<version>5.3.18</version> 
  </dependency>

  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>6.0.0.Final</version>
  </dependency>

</dependencies>

Все, больше ничего делать не нужно. Если ты добавишь такие строки в свой проект, IDEA тут же скачает нужные библиотеки. Спустя несколько секунд после этого ты сможешь использовать их классы в своем коде.

Важный момент: если зальешь проект на GitHub или вышлешь кому-то в виде архива, этот человек гарантированно сможет его собрать. Вся информация по библиотекам, зависимостям и сценариям сборки уже зашита в проект.

4.2 Как искать библиотеки в Maven Repository

Кстати, я добавил XML-код этих двух библиотек в мой pom.xml меньше чем за минуту. Неплохо, да? Сейчас я научу тебя быстро добавлять в проект любую библиотеку.

Во-первых, в интернете есть центральный публичный Maven-репозиторий, в котором хранятся миллионы библиотек. Находится он по ссылке https://mvnrepository.com/, нужную тебе библиотеку можно искать непосредственно в нем.

Maven

Во-вторых, можно еще проще – сразу пиши в Google “maven hibernate”, переходи по первой ссылке и получишь:

Maven 2

Выбери нужную версию и кликай по ней. Иногда последняя версия содержит суффикс Beta, тогда бери что-нибудь постарее.

Я выбрал версию 6.0.0.Final и перешел на последнюю страницу.

Зеленым квадратом тут выделен код, который тебе нужно скопировать в свой pom.xml. Все.

4.3 dependency repository

Во время сборки проекта твой Maven сначала будет искать указанную библиотеку (артефакт) в твоем локальном репозитории. Если он там ее не найдет, то затем будет искать в глобальном Maven-репозитории. И потом загрузит ее в твой локальный репозиторий – для ускорения следующей сборки.

Но, кроме этих двух репозиториев существуют еще и другие.

Во-первых, у многих крупных компаний есть maven-репозитории со своими собственными библиотеками.

Во-вторых, до изобретения Docker, многие проекты после сборки просто клались в корпоративный Maven-репозиторий. А что? Отличное место для хранения всего. И версионирование опять-таки поддерживается.

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

<repositories>
 
  <repository>
  	<id>public-javarush-repo</id>
  	<name>Public JavaRush Repository</name>
  	<url>http://maven.javarush.com</url>
  </repository>
 
  <repository>
  	<id>private-javarush-repo</id>
  	<name>Private JavaRush Repository</name>
  	<url>http://maven2.javarush.com</url>
  </repository>
 
</repositories>

У каждого репозитория есть 3 вещи: Key/ID, Имя и URL. Имя можно указать любое – оно для твоего удобства, ID тоже для ваших внутренних нужд, фактически тебе нужно указать только URL.

Если это публичный репозиторий, то эта информация легко гуглится, если корпоративный, то тебе ее дадут, когда дадут доступ к такому репозиторию.

Создатели Maven умеют в стандартизацию, в этом им не откажешь.