[Android] Importante envoltorio de Gradle

1. ¿Por qué necesita Gradle Wrapper?

Gradle Wrapper se llama Gradle wrapper, que es una capa de embalaje para Gradle. ¿Por qué necesitas Gradle Wrapper? Por ejemplo, en un equipo de desarrollo, si todos los miembros entran, es necesario instalar Gradle en la computadora. En este momento, el entorno y la versión de Gradle en ejecución traerán incertidumbre al resultado de la compilación. Para resolver este problema, Gradle proporciona una solución, Gradle Wrapper, que es un script que puede ejecutar compilaciones de Gradle sin Gradle instalado en la computadora, y puede especificar la versión de Gradle, y los desarrolladores pueden iniciar y ejecutar rápidamente proyectos de Gradle, en lugar de hacerlo manualmente. instalación, esto estandariza el proyecto y mejora la eficiencia del desarrollo. AS traerá su propio Gradle Wrapper al crear un nuevo proyecto, por lo que rara vez descargamos e instalamos Gradle por separado. El flujo de trabajo de Gradle Wrapper se muestra en la siguiente figura.

Cuando se usa Gradle Wrapper para iniciar Gradle, si la versión especificada de Gradle no está asociada con la descarga, la versión de Gradle se descargará del almacén oficial de Gradle al área local del usuario, se descomprimirá y se ejecutará el archivo por lotes. Las ejecuciones posteriores de la compilación reutilizarán este instalador en tiempo de ejecución descomprimido.

2. Construye Gradle Wrapper

En primer lugar, asegúrese de que el entorno de Gradle esté configurado en la computadora. De lo contrario, puede consultar la idea principal de Gradle (2) Preludio a Gradle para configurar el entorno de Gradle.
Gradle tiene una Wrapper Task incorporada. La ejecución de Wrapper Task puede generar archivos de directorio de Gradle Wrapper en el directorio del proyecto. Simplemente ejecute el contenedor de Gradle en el directorio raíz del proyecto.

Código

$ gradle wrapper 
> Task: wrapper 

CONSTRUIR CON ÉXITO en 0s 
1 tarea procesable: 1 ejecutada

En este momento, se generarán los siguientes archivos en el directorio raíz del proyecto:

Código

├── gradle 
│ └── wrapper 
│ ├── gradle-wrapper.jar 
│ └── gradle-wrapper.properties 
├── gradlew 
└── gradlew.bat

El significado de cada archivo es el siguiente:

  • gradle-wrapper.jar: contiene el código lógico del tiempo de ejecución de Gradle.
  • gradle-wrapper.properties: el archivo de propiedades responsable de configurar el comportamiento en tiempo de ejecución del contenedor, usado para configurar qué versión de Gradle y otras propiedades usar.
  • gradlew: un script contenedor que se utiliza para ejecutar comandos de Gralde en la plataforma Linux.
  • gradlew.bat: un script contenedor que se utiliza para ejecutar comandos de Gralde en la plataforma Windows.

Una vez generados los directorios y archivos anteriores, el usuario puede enviar el proyecto al control remoto y, cuando se clonan otros usuarios, el proyecto se puede construir directamente, lo que le ahorra tiempo al usuario para descargar Gradle por separado y puede garantizar la versión de Gradle Unánime.

También puede usar las opciones de la línea de comandos de Gradle para generar un contenedor de Gradle.
--Versión de Gradle: se utiliza para descargar y ejecutar la versión de Gradle especificada.
--Distribution-type: especifica el tipo de distribución de Gradle para descargar. Las opciones disponibles son bin y todo. El valor predeterminado es bin. La distribución -bin solo contiene el tiempo de ejecución, pero no incluye el código fuente ni la documentación.
--Gradle-distribution-url: especifique la dirección URL completa para descargar la distribución de Gradle.
--Gradle-distribution-sha256-sum: use el hash SHA 256 y verifique la distribución de Gradle descargada.

Por ejemplo, usando la línea de comando: gradle wrapper –gradle-versión 4.2.1 –distribution-type all, puede generar un wrapper con la versión 4.2.1 y usar la distribución -all.

3. 配置 Envoltorio Gradle

gradle-wrapper.properties es el archivo de propiedades de Gradle Wrapper, que se utiliza para configurar Gradle Wrapper. El gradle-wrapper.properties correspondiente a la versión Gradle 4.2.1 se muestra a continuación.

Código

distributionBase = GRADLE_USER_HOME 
distributionPath = envoltorio / dists 
distributionUrl = https \: //services.gradle.org/distributions/gradle-4.2.1-bin.zip 
zipStoreBase = GRADLE_USER_HOME 
zipStorePath = envoltorio / dists

El significado de los campos es el siguiente:

  • distributionBase: el directorio de inicio almacenado después de desempaquetar Gradle.
  • distributionPath: un subdirectorio del directorio especificado de distributionBase. distributionBase + distributionPath es la ubicación de almacenamiento después de desempaquetar Gradle.
  • distributionUrl: la dirección de descarga del paquete comprimido de distribución de Gradle.
  • zipStoreBase: directorio de inicio de almacenamiento de paquetes comprimidos de Gradle.
  • zipStorePath: un subdirectorio del directorio especificado de zipStoreBase. zipStoreBase + zipStorePath es la ubicación de almacenamiento del paquete comprimido de Gradle.

Lo más importante a lo que debemos prestar atención aquí es el campo distributionUrl. Si la dirección oficial no se puede descargar o es lenta, puede cambiar esta dirección a otra dirección espejo, o simplemente poner el paquete comprimido de distribución de Gradle en el servidor para descargar .

4. Utilice Gradle Wrapper

Use Gradle Wrapper no para usar los comandos de Gradle, sino para usar los scripts gradlew y gradlew.bat. Agregue la siguiente declaración en build.gradle:

Java

prueba de tarea { 
    doLast { 
        println '¡Hola mundo!' 
    } 
}

Tomando la plataforma Windows como ejemplo, ingresamos al directorio raíz donde se encuentra el proyecto y ejecutamos la prueba gradlew.bat:

Código

f: \ app> prueba gradlew.bat 
Descargando https://services.gradle.org/distributions/gradle-4.2.1-bin.zip 
................... ................................................ 
Iniciando un Gradle Daemon (las compilaciones posteriores serán más rápidas) 

> Tarea: probar 
¡Hola mundo!

Si no hay una versión de Gradle en la computadora, el contenedor de Gradle descargará el paquete comprimido de la versión de Gradle al local y lo descomprimirá. Por ejemplo, la ruta de almacenamiento en mi computadora es: C: \ Users \ 52501.gradle \ wrapper \ dists \ gradle -4.2.1-bin \ dajvke9o8kmaxbu0kc5gcgeju \ gradle-4.2.1.
Si la propiedad distributionUrl del archivo de propiedades de Gradle no cambia a partir de entonces, siempre se usará la versión local de Gradle. Si volvemos a ejecutar la prueba gradlew.bat, será lo mismo que llamar al comando de Gradle:

Código

f: \ app> prueba gradlew.bat 
Iniciando un Daemon de Gradle (las compilaciones posteriores serán más rápidas) 

> Tarea: prueba 
¡Hola mundo!

5. Actualizar Gradle Wrapper

Hay dos formas de actualizar Gradle Wrapper. Una es establecer la propiedad distributionUrl del archivo de propiedades de Gradle. La segunda es ejecutar la tarea de envoltura. Se recomienda el segundo método. La versión local actual de Gradle es 4.2.1, quiero actualizar a 5.1.1, simplemente ejecute el comando gradlew wrapper –gradle-version 5.1.1.

Código

f: \ app> gradlew wrapper --gradle-version 5.1.1 

CONSTRUYE CON ÉXITO en 1 s 
1 tarea procesable: 1 ejecutada

Ejecute el comando gradlew -v para verificar la versión de Gradle.

Código

f: \ app> gradlew -v 
Descargando https://services.gradle.org/distributions/gradle-5.1.1-bin.zip 
.................... .................................................. ........... 
Descomprimiendo C: \ Users \ 52501 \ .gradle \ wrapper \ dists \ gradle-5.1.1-bin \ 90y9l8txxfw1s2o6ctiqeruwn \ gradle-5.1.1-bin.zip a C: \ Users \ 52501 \ .gradle \ wrapper \ dists \ gradle-5.1.1-bin \ 90y9l8txxfw1s2o6ctiqeruwn ¡ 

Bienvenido a Gradle 5.1.1! 

Estos son los aspectos más destacados de esta versión: 
 - Controle qué dependencias se pueden recuperar de qué repositorios 
 - API de evitación de configuración listas para producción 

Para obtener más detalles, consulte https://docs.gradle.org/5.1.1/release-notes.html 

- -------------------------------------------------- -------- 
Gradle 5.1.1
-------------------------------------------------- ---------- 

Tiempo de construcción: 2019-01-10 23:05:02 UTC 
Revisión: 3c9abb645fb83932c44e8610642393ad62116807 

Kotlin DSL: 1.1.1 
Kotlin: 1.3.11 
Groovy: 2.5.4 
Ant: Apache Ant (TM) versión 1.9.13 compilada el 10 de julio de 2018 
JVM: 1.8.0_191 (Oracle Corporation 25.191-b12) 
SO: Windows 10 10.0 amd64

Dado que el local no es Gradle 5.1.1, el paquete comprimido de Gradle descargado se almacenará y descomprimirá. Para obtener más información, consulte el registro de impresión anterior.

6. Envoltorio Gradle personalizado

Gradle tiene una tarea de envoltura incorporada, por lo que la creación de una envoltura de Gradle generará un archivo de propiedades de envoltura de Gradle, que se puede configurar personalizando la tarea de envoltura. Por ejemplo, si queremos modificar la versión de Gralde para descargarla a 4.2.1, podemos configurarlo así:

Java

contenedor de tareas (tipo: contenedor) { 
    gradleVersion = '4.2.1' 
}

También puede configurar la dirección de descarga del paquete comprimido de la versión de Gradle y la ruta de almacenamiento local después de desempaquetar Gradle.

Java

task wrapper(type: Wrapper) {
    gradleVersion = '4.2.1'
    distributionUrl = '../../gradle-4.2.1-bin.zip'
    distributionPath=wrapper/dists

}

distributionUrl属性可以设置为本地的项目目录,你也可以设置为网络地址。

Supongo que te gusta

Origin blog.csdn.net/xfb1989/article/details/110083113
Recomendado
Clasificación