Зависимости Gradle buildscript

в чем разница между объявлением репозиториев в buildScript раздел сборки gradle или на корневом уровне сборки.

Вариант 1:

построить.Gradle в:

buildScript {
    repositories {
        mavenCentral();
    }
}

или

построить.Gradle в:

repositories {
    mavenCentral();
}

3 ответов


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

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


скрипт сборки (т. е. build.gradle) может иметь некоторые зависимости для выполнения самого скрипта сборки. Вы заключите эти зависимости в блок buildScript. Глава 4 Gradle Beyond The Basics описывает его подробно.


Я хочу дать вам ясное представление. По этой причине я прилагаю построить.класс!--8--> код снимка для лучшего понимания.

buildscript зависимости:

buildscript {
    repositories {
        maven { url("https://plugins.gradle.org/m2/") }
    }

    dependencies {
        classpath 'net.saliman:gradle-cobertura-plugin:2.3.2'
        classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release'
    }
}

зависимости корневого уровня/ядра:

repositories{
    mavenLocal()
    maven { url("https://plugins.gradle.org/m2/") }
    maven { url "https://repo.spring.io/snapshot" }
}

dependencies {
        //Groovy
        compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.3.10'

        //Spock Test
        compile group: 'org.spockframework', name: 'spock-core', version: '1.0-groovy-2.3'

        //Test
        testCompile group: 'junit', name: 'junit', version: '4.10'
        testCompile group: 'org.testng', name: 'testng', version: '6.8.5'
}

Итак, сначала я хочу уточнить одним словом, что

i) файл jar зависимостей buildscript будет загружен из buildscript репозиториев.[внешнее зависимость]

ii) файл jar зависимостей корневого уровня будет загружен из root хранилища уровней.[для зависимостей проекта]

здесь

блок "buildscript" управляет зависимостями только для самого процесса buildscript, а не для кода приложения. Как различные Gradle плагин, как gradle-cobertura-plugin, gradle-lint-plugin найдены из репозиториев buildscript. Эти плагины не будут ссылаться как зависимости для приложения код.

но для компиляции проекта и тестирования запущенных файлов jar, таких как groovy all jar, junit and testng jar будет найдено из репозиториев корневого уровня.

и еще, maven { url("https://plugins.gradle.org/m2/") } часть можно использовать в обоих блоках. Потому что они используются для разных зависимостей.

Ссылка На Ресурс: разница между зависимостями в закрытии buildscript и core