2016-05-25 1 views
0
dependencies { 
    sources group: 'org.glassfish.jersey.media', name: 'jersey-media-moxy', version: '2.22.2', classifier: 'sources' 
} 

Когда я запускаю вышеуказанные зависимости через gradle, он загружает файл jar и связанные с ним другие файлы jar.Как gradle определяет зависимые файлы jar файла jar?

Мой вопрос: Как град определяет, какие банки необходимы для этой банки?

ответ

1

В нем используется одна из стратегий разрешения зависимостей, определенных в вашем проекте. Вы можете найти более подробную информацию здесь 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> 
+0

Я знаю это. Но я беспокоюсь, где написано, какие банки нужны? – SkyWalker

+1

Хорошо, я расширил ответ, чтобы объяснить, как он работает. – Vlad

 Смежные вопросы

  • Нет связанных вопросов^_^