Objetivo del tema
Exploraras como Gradle se adapta a lenguajes como Kotlin, Groovy y Scala, y como se integra con frameworks populares de backend, mobile y frontend.
Al finalizar, sabras configurar proyectos poliglotas, incorporar el plugin de Spring Boot, trabajar con el Android Gradle Plugin y coordinar tareas con herramientas como npm o webpack.
Gradle ofrece plugins oficiales para proyectos en Kotlin, Groovy y Scala. Puedes combinar varios lenguajes en un mismo build o especializar cada modulo segun las necesidades.
plugins {
id 'org.jetbrains.kotlin.jvm' version '2.0.21'
id 'groovy'
id 'scala'
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib"
implementation localGroovy()
implementation "org.scala-lang:scala-library:2.13.13"
}
sourceSets {
main {
kotlin.srcDirs('src/main/kotlin')
groovy.srcDirs('src/main/groovy')
scala.srcDirs('src/main/scala')
}
}
Los plugins de lenguajes se pueden combinar con el plugin java
para reutilizar configuraciones comunes como pruebas unitarias y empaquetado.
El plugin org.springframework.boot
simplifica la construccion de aplicaciones Spring Boot: agrega tareas de empaquetado, gestiona dependencias alineadas y habilita herramientas de desarrollo.
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.4'
id 'io.spring.dependency-management' version '1.1.6'
}
springBoot {
mainClass = 'com.ejemplo.DemoApplication'
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
// Ejecutar la aplicacion
// ./gradlew bootRun
El plugin crea la tarea bootJar
para generar un JAR ejecutable con Tomcat embebido y tareas bootRun
para ejecutar en desarrollo.
Android Studio utiliza Gradle como motor de build mediante el Android Gradle Plugin. Permite definir variantes, firmar APKs y empaquetar recursos nativos.
plugins {
id 'com.android.application' version '8.7.1'
id 'org.jetbrains.kotlin.android' version '2.0.21'
}
android {
namespace 'com.ejemplo.app'
compileSdk 35
defaultConfig {
applicationId 'com.ejemplo.app'
minSdk 24
targetSdk 35
versionCode 1
versionName '1.0.0'
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation 'androidx.core:core-ktx:1.13.1'
implementation 'androidx.compose.ui:ui:1.7.0'
testImplementation 'junit:junit:4.13.2'
}
Ejecuta ./gradlew assembleDebug
para generar un APK debug y ./gradlew connectedAndroidTest
para ejecutar pruebas instrumentadas en dispositivos.
Gradle puede coordinar tareas de build frontend invocando herramientas como npm o webpack. Esto permite unificar pipelines full-stack sin perder control de versiones.
import org.gradle.process.ExecResult
tasks.register('npmInstall') {
doLast {
exec { commandLine 'npm', 'install' }
}
}
tasks.register('npmBuild') {
dependsOn 'npmInstall'
doLast {
ExecResult result = exec { commandLine 'npm', 'run', 'build' }
result.assertNormalExitValue()
}
}
tasks.named('processResources') {
dependsOn 'npmBuild'
}
Coloca el frontend en un subdirectorio (por ejemplo ui/
) y usa workingDir
dentro de exec
si necesitas cambiar la ruta antes de ejecutar npm o webpack.
Gradle facilita trabajar con multiples lenguajes y frameworks: integra Kotlin, Groovy y Scala; habilita flujos Spring Boot listos para produccion; soporta el build de Android y coordina pipelines frontend con npm o webpack. Aprovecha estos plugins para mantener builds coherentes en equipos multidisciplinarios.