Ответ на ваш вопрос приведен в параграфе сразу после примера 23.24 в документации по API Gradle Chapter 23 Section 24.
Обратите внимание, как метод configurations.files возвращает версию 2 уплотняющей банки.
В приведенном выше примере, косатка имеет зависимость от уплотнения-1,0, тогда как акула имеет зависимость onseal-2.0. Поэтому исходная конфигурация имеет конфликт версий, который разрешен для более новой версии seal-2.0. Метод файлов поэтому возвращает уплотнение-2.0 в качестве транзитивной зависимости orca. Скопированная конфигурация имеет только orca в качестве зависимости и , поэтому конфликт версий отсутствует, а печать-1.0 возвращается как транзитивная зависимость .
Чтобы понять, почему это происходит, потратите некоторое время на метод конфигурации в Gradle docs.
файлы выполняют следующие действия:
Решает эту конфигурацию. Это находит и загружает файлы , которые составляют эту конфигурацию. Но возвращается только результирующий набор файлов , принадлежащий подмножеству зависимостей, указанному в параметре dependencySpec .
Copy делает следующее:
Создает копию этой конфигурации, который содержит только зависимостей непосредственно в этой конфигурации (без взносов от superconfigurations). Новая конфигурация будет находиться в состоянии UNRESOLVED, но сохранит все остальные атрибуты этой конфигурации , за исключением суперконфигурации. Configuration.getHierarchy() для копии не будет содержать никаких суперконфигураций.
Как это применимо к примеру документации? Configuration.files
разрешает конфигурацию, которая, как показано в примере в примере, обрабатывает конфликт версии, введенный shark
, который зависит от seal-2.0.jar
. Configuration.copy
создает копию конфигурации и еще не разрешен, что означает, что у нее еще нет конфликта версий.
Существует пояснение прямо под фрагментом кода. Можете ли вы уточнить, какая часть вас смущает? (В противном случае вы просто просите кого-то произвольно перефразировать его для вас!) –
@OliverCharlesworth - это вопрос ELI5 против SO thisos? – RaGe
@RaGe - да, ИМХО, учитывая, что ОП не указал, что на самом деле запутывает, нет никакого способа ответить на это окончательно. –