update tools studio para mac descargar configurar gradle android-gradle

tools - ¿Cuál es la diferencia entre buildscript y todos los proyectos en build.gradle?



update gradle mac (2)

En una compilación de gradle multiproyecto, ¿alguien puede decirme cuál es exactamente la diferencia entre la sección "todos los proyectos" y la "buildscript"? Ambos tienen una tarea de repositories y dependencies . ¿ allprojects los proyectos para mi proyecto? ¿Qué pasa con buildscript ?

buildscript { repositories { ... } dependencies { ... } }

y

allprojects(subprojects) { repositories { ... } dependencies { ... } }


La sección de configuración " buildscript " es para gradle (es decir, cambios en cómo gradle puede realizar la compilación). Por lo tanto, esta sección generalmente incluirá el complemento Android Gradle.

La sección "todos los allprojects " es para los módulos construidos por Gradle.

A menudo, la sección del repositorio es la misma para ambos, ya que ambos obtendrán sus dependencias de jcenter generalmente (o tal vez maven central). Pero la sección "dependencias" será diferente.

Por lo general, la sección "dependencias" para "todos los proyectos" está vacía ya que las dependencias para cada módulo son únicas y estarán en el archivo "build.gradle" dentro de cada uno de los módulos. Sin embargo, si todos los módulos compartieran las mismas dependencias, podrían enumerarse aquí.


TL; DR: buildscript ayuda a encontrar complementos, todos los proyectos se aplican a todos los proyectos

https://docs.gradle.org/current/userguide/userguide_single.html#applyPluginBuildscript dice

Los complementos binarios que se han publicado como archivos jar externos se pueden agregar a un proyecto agregando el complemento a la ruta de clase del script de compilación y luego aplicando el complemento.

Entonces necesita buildscript para que gradle encuentre los complementos, as

Gradle en su núcleo intencionalmente proporciona muy poco para la automatización del mundo real. Todas las funciones útiles, como la capacidad de compilar código Java, se agregan mediante complementos. Los complementos agregan nuevas tareas (p. Ej., JavaCompile), objetos de dominio (p. Ej., SourceSet), convenciones (p. Ej., La fuente de Java se encuentra en src / main / java), así como también extienden objetos centrales y objetos de otros complementos.

Con respecto a todos los allprojects :

La API del proyecto proporciona una propiedad de allprojects los allprojects que devuelve una lista con el proyecto actual y todos sus subproyectos debajo de él. Si llama a todos los allprojects con un cierre, las declaraciones del cierre se delegan a los proyectos asociados con allprojects los proyectos.