build - para - gradle version android studio
Dependencias de compilaciĆ³n de Gradle (3)
El script de compilación (es decir, build.gradle) puede tener algunas dependencias para la ejecución del script de compilación en sí mismo. Debería encerrar esas dependencias dentro del bloque buildScript. El Capítulo 4 de Gradle Beyond the Basics lo describe en detalle.
¿Cuál es la diferencia entre declarar repositorios en la sección buildScript
de la compilación gradle o en el nivel raíz de la compilación?
Opción 1:
build.gradle :
buildScript {
repositories {
mavenCentral();
}
}
o
build.gradle :
repositories {
mavenCentral();
}
Los repositorios en el bloque de buildScript se utilizan para buscar las dependencias de sus dependencias de buildScript. Estas son las dependencias que se colocan en el classpath de su compilación y que puede consultar desde su archivo de compilación. Por ejemplo, los complementos adicionales que existen en Internet.
Los repositorios en el nivel raíz se utilizan para buscar las dependencias de las que depende su proyecto. Entonces, todas las dependencias que necesita para compilar su proyecto.
Quiero darte una concepción clara. Por este motivo, adjunto el código de instantánea build.grade para una mejor comprensión.
dependencias de 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''
}
}
nivel raíz / dependencias centrales:
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''
}
Entonces, primero quiero aclarar en una sola palabra que
i) el archivo jar de dependencias de buildscript se descargará de los repositorios de compilación. [Proyecto de dependencia externa]
ii) el archivo jar de dependencias de nivel raíz se descargará de los repositorios de nivel raíz. [Para la dependencia del proyecto]
Aquí,
El bloque "buildscript" solo controla dependencias para el proceso de compilación en sí, no para el código de la aplicación. Como varios plugins de gradle como gradle-cobertura-plugin
, gradle-lint-plugin
se encuentran desde repos de buildscript. Esos complementos no serían referenciados como dependencias para el código de la aplicación.
Pero para la compilación de proyectos y la ejecución de archivos jar en ejecución, como groovy all jar, junit and testng jar
se encontrarán en los repositorios de nivel raíz.
Y otra cosa , la porción maven { url("https://plugins.gradle.org/m2/") }
se puede usar en ambos bloques. Porque se usan para diferentes dependencias.
Enlace de recursos: Diferencia entre dependencias dentro del cierre de compilación y núcleo