Files
fn_registry/bash/functions/infra/gradle_run.md
T

2.4 KiB

name, kind, lang, domain, version, purity, signature, description, tags, params, output, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, notes
name kind lang domain version purity signature description tags params output uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path notes
gradle_run function bash infra 1.0.0 impure gradle_run(project_dir: string, task...: string) -> int Wrapper canonico para invocar gradlew Android en WSL2 con JDK 17 + ANDROID_HOME validados.
android
gradle
kotlin
build
name desc
project_dir Path absoluto al proyecto Gradle (debe contener gradlew)
name desc
task Tarea(s) Gradle a ejecutar (ej. assembleDebug, :app:test). Variadic
Stdout/stderr del build Gradle. Exit code = exit code de gradlew. Exit 1 si JDK17 missing, exit 2 si no hay gradlew.
false error_go_core
false
bash/functions/infra/gradle_run.sh Las demas funciones gradle_* lo sourcean. Reutiliza patron de adb_wsl_bash_infra para ser source-able+ejecutable. Cubre tanto SDK Linux (~/Android/Sdk via install_android_sdk) como SDK Windows (/mnt/c/...) montado en WSL.

Ejemplo

# Como libreria (en otro script gradle_*)
source "$(dirname "${BASH_SOURCE[0]}")/gradle_run.sh"
gradle_run "$project_dir" assembleDebug

# Directo
bash bash/functions/infra/gradle_run.sh /path/to/MyApp assembleDebug
bash bash/functions/infra/gradle_run.sh /path/to/MyApp :app:test :app:lint

Comportamiento de resolucion

JAVA_HOME

Si no esta fijado en el entorno, busca en orden:

  1. /usr/lib/jvm/java-17-openjdk-amd64
  2. /usr/lib/jvm/temurin-17-jdk-amd64
  3. /opt/android-studio-jbr/jbr

Si ninguno existe → error en stderr y return 1.

ANDROID_HOME

Si no esta fijado:

  1. Intenta $HOME/Android/Sdk (SDK Linux via install_android_sdk_bash_infra)
  2. Si no existe, intenta $ANDROID_SDK_WIN (SDK Windows montado en /mnt/c/...)
  3. Si ninguno, lo deja vacio — gradle mostrara el error adecuado para builds JVM puros

Exit codes

Codigo Significado
0 Build exitoso
1 JDK 17 no encontrado
2 ./gradlew no existe en project_dir
* Exit code propagado de gradlew

Notas

Source-able y ejecutable directo. Al sourcear, el caller importa la funcion gradle_run sin ejecutarla. Al ejecutar directamente, delega "$@" a gradle_run.

No exporta JAVA_HOME/ANDROID_HOME al entorno del shell padre — los variables se pasan solo al subshell de gradlew para evitar contaminar el entorno.