39. GRADLE¶
Página principal con la documentación de Gradle. Gradle es una herramienta de automatización de construcción de software que se utiliza principalmente para proyectos Java, aunque también soporta otros lenguajes como Kotlin, C++, y más. Permite la automatización de tareas como la compilación, el empaquetado, la prueba y la distribución de aplicaciones. Gradle utiliza un lenguaje de dominio específico basado en Groovy o Kotlin para definir los pasos de construcción y dependencias, lo que lo hace altamente configurable y extensible. Es conocido por su rendimiento y flexibilidad, y es ampliamente utilizado en la industria del desarrollo de software.
39.1 Funcionamiento básico Gradle¶
-
Configuración Inicial
- Gradle se inicializa leyendo los archivos de configuración del proyecto, generalmente denominados
build.gradle
.
- Gradle se inicializa leyendo los archivos de configuración del proyecto, generalmente denominados
-
Evaluación de Dependencias
- Gradle evalúa las dependencias del proyecto, que pueden ser bibliotecas externas o tareas internas.
-
Ejecución de Tareas
- Gradle ejecuta las tareas en un orden específico, basándose en la configuración y las dependencias.
- Utiliza "up-to-date checks" para ejecutar solo las tareas que son necesarias.
-
Personalización
- Permite la creación de tareas y scripts personalizados para adaptar el proceso de construcción a las necesidades específicas del proyecto.
-
Plugins
- Gradle tiene un ecosistema de plugins que se pueden utilizar para extender su funcionalidad.
-
Salida
- Genera los archivos de salida, como archivos JAR, APK, documentación, informes de pruebas, etc.
-
Integración Continua
- Se integra fácil
39.2 Instalación¶
Puede instalarse manualmente o utilizarse con los IDE en los que viene integrado, como por ejemplo Android Studio (AS).
Cuando se crea el proyecto en AS se generan los ficheros de configuración de gradle.
39.3 Ficheros de configuración en Gradle¶
- build.gradle
-
Archivo principal de configuración donde se definen dependencias, plugins y tareas.
-
settings.gradle
-
Configuración del proyecto a nivel de raíz, incluye qué subproyectos forman parte del proyecto principal.
-
gradle.properties
-
Define propiedades disponibles en los archivos
build.gradle
, útil para centralizar configuraciones. -
gradlew y gradlew.bat
-
Scripts del Gradle Wrapper para ejecutar tareas de Gradle sin necesidad de instalarlo.
gradlew
es para sistemas Unix-like ygradlew.bat
para Windows. -
gradle/wrapper/gradle-wrapper.properties
-
Contiene detalles sobre la versión de Gradle a utilizar y dónde descargarla.
-
gradle/wrapper/gradle-wrapper.jar
-
Código JAR que descarga e instala la versión apropiada de Gradle.
-
local.properties
- Contiene configuraciones específicas del entorno local, como rutas a SDKs. Generalmente no se incluye en el control de versiones.
Normalmente no se llama directamente al programa gradle, en su lugar se usa Gradle wrapper.
$ ./gradlew build
39.4 Estructura básica de un proyecto Gradle¶
39.5 Fichero config.gradle¶
Esta formado por secciones:
- Definición
-
Es el archivo de configuración principal de un proyecto Gradle.
-
Dependencias
-
Este archivo es donde se declaran las dependencias del proyecto, tanto para el código de producción como para las pruebas.
dependencies { implementation 'com.example:library:1.0' testImplementation 'junit:junit:4.12' }
-
Plugins
-
Los plugins que amplían las capacidades de Gradle se declaran aquí.
plugins { id 'java' }
-
Tareas
-
Se pueden definir tareas personalizadas que automatizan los procesos.
task hello { doLast { println 'Hello, world!' } }
-
Configuraciones
-
Configuraciones específicas del proyecto, como versiones de lenguaje y otros parámetros, también se establecen aquí.
sourceCompatibility = '1.8' targetCompatibility = '1.8'
-
Repositorios
- Los repositorios para las dependencias se especifican en este archivo.
repositories { mavenCentral() }