Переходные зависимости в Maven - PullRequest
0 голосов
/ 09 октября 2018

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

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Maven документация предполагает, что вы уже знаете, что такое транзитивная зависимость .Это может быть не так!Итак, давайте углубимся в ...

Перво-наперво

Переходная зависимость -

A depends on B
B does not depend on A
B depends on C

==> Therefore A depends on C

Это так просто.

Хорошие новости

Maven отлично справляется с управлением зависимостями!Из документации Maven :

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

ИтакБольшую часть времени вам не придется об этом беспокоиться.

И далее

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

Управление зависимостями , например, является очень популярной функцией, поскольку она обеспечивает применение версий зависимостей, используемых проектом илинабор проекта.
Исключение позволяет исключить переходные зависимости из проекта.Эта функция полезна для управления несовместимостью зависимостей.И так далее ...

0 голосов
/ 09 октября 2018

Начать очень просто.Предположим, вы используете библиотеку типа Tika lib.Таким образом, вы выражаете это, определяя зависимость в вашем файле pom следующим образом:

<project...>

  <dependencies>
    <dependency>
      <groupId>..</groupId>
      <artfaictId>tika-core</artifactId>
      <version>1.19</version>
    </dependency>
  </dependencies>

</project>

Библиотека Tika также имеет свои собственные зависимости, которые означают зависимости Tika a, выраженные в их файле pom и эти зависимости называются Transitive Dependencies.

Простое преимущество заключается в том, что вам не нужно думать о переходных зависимостях.Это означает, что вам нужно только подумать: Я бы хотел использовать Tika lib и не беспокоиться об их зависимостях ...

Так что если вы используете класс ядра Tika вваш код у вас есть зависимость доступна.Один из советов о передовой практике: если вы используете класс транзитивной зависимости, сделайте его прямой зависимостью (добавьте его в файл pom).

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