Chcę dać ci jasną koncepcję. Z tego powodu dołączam kod migawki build.grade dla lepszego zrozumienia.
zależności 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'
}
}
poziom główny / podstawowe zależności:
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'
}
Więc najpierw chcę to wyjaśnić jednym słowem
i) Plik jar zależności buildscript zostanie pobrany z repozytoriów buildscript. [Zależność zewnętrzna projektu]
ii) Plik jar zależności poziomu głównego zostanie pobrany z repozytoriów poziomu głównego. [Dla zależności projektu]
Tutaj,
Blok „buildscript” kontroluje tylko zależności dla samego procesu buildscript, a nie dla kodu aplikacji. Podobnie jak różne wtyczki gradle gradle-cobertura-plugin
, gradle-lint-plugin
można je znaleźć w repozytoriach buildscript. Te wtyczki nie byłyby przywoływane jako zależności dla kodu aplikacji.
Ale w przypadku kompilacji projektu i testowania plików jar, takie jak groovy all jar, junit and testng jar
, można znaleźć w repozytoriach poziomu głównego.
I jeszcze jedno , maven { url("https://plugins.gradle.org/m2/") }
porcję można wykorzystać w obu blokach. Ponieważ są używane dla różnych zależności.
Link do zasobu: różnica między zależnościami w zamknięciu buildscript i core