В нем используется одна из стратегий разрешения зависимостей, определенных в вашем проекте. Вы можете найти более подробную информацию здесь https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html
По умолчанию используется стандартная стратегия разрешения Maven зависимостей при ходьбе через пом файлов
Например, в вашем случае org.glassfish.jersey.media он получает файл POM от here. Этот файл POM содержит следующий раздел зависимостей. После того, как gradle загружает этот файл, он по очереди загружает соответствующие POM-файлы и просматривает зависимости зависимостей, пока не достигнет пакетов листьев, которые ни на что не зависят. Все может усложниться, когда график зависимостей не является идеальным деревом, а два разных пакета имеют одинаковую зависимость. Обычно они разрешаются, если версии общей зависимости одинаковы или оба зависимых пакета могут использовать общую версию. В противном случае вы столкнетесь с конфликтом, и для его решения используется одна из вышеупомянутых стратегий.
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-entity-filtering</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.moxy</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Я знаю это. Но я беспокоюсь, где написано, какие банки нужны? – SkyWalker
Хорошо, я расширил ответ, чтобы объяснить, как он работает. – Vlad