Я хочу дати вам чітке уявлення. З цієї причини я додаю код знімка build.grade для кращого розуміння.
Залежності 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-файлу залежності кореневого рівня буде завантажений із сховищ кореневого рівня. [Для залежності від проекту]
Ось
Блок "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/") }
порцію можна використовувати в обох блоках. Тому що їх використовують для різних залежностей.
Посилання на ресурс: різниця між залежностями в рамках закриття сценарію і основним