Je veux vous donner une conception claire. Pour cette raison, j'attache le code de l'instantané build.grade pour une meilleure compréhension.
dépendances 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'
}
}
dépendances de niveau racine / noyau:
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'
}
Donc, d'abord je veux clarifier en un seul mot
i) Le fichier jar des dépendances buildscript sera téléchargé à partir des référentiels buildscript. [Dépendance externe du projet]
ii) le fichier jar des dépendances de niveau racine sera téléchargé à partir des référentiels de niveau racine. [Pour la dépendance du projet]
Ici,
Le bloc «buildscript» ne contrôle que les dépendances pour le processus buildscript lui-même, pas pour le code de l'application. Comme divers plugins de gradle comme gradle-cobertura-plugin
, gradle-lint-plugin
sont trouvés à partir de dépôts de buildscript. Ces plugins ne seraient pas référencés en tant que dépendances pour le code d'application.
Mais pour la compilation de projets et les tests en cours d'exécution, des fichiers jar comme ceux- groovy all jar, junit and testng jar
ci seront trouvés dans les référentiels de niveau racine.
Et autre chose , la maven { url("https://plugins.gradle.org/m2/") }
portion peut être utilisée dans les deux blocs. Parce qu'ils sont utilisés pour différentes dépendances.
Lien de ressource: différence entre les dépendances dans la fermeture et le noyau de buildscript