Gradle: ¿Cómo ejecutar una tarea personalizada después de que se construye una Biblioteca de Android?
Tengo una librería de Android, está generando un debug.aar y un release.aar, necesito copiar el release.aar a otra carpeta como una referencia a otra parte del proyecto.
Lo que he hecho ahora es en esta Biblioteca de Android build.gradle definí una tarea:
- Cómo acceder a un buildConfigField en otro lugar dentro de un archivo de compilación de gradle
- ¿Cómo suprimir la advertencia de Gradle en Android Studio?
- Gradle excluir plugin en proyecto principal para subproyecto (s) específico (s)
- Cómo configurar gradle home mientras importa proyectos existentes en Android studio
- ¿Cómo obtener cobertura de código con Android Studio?
task copyAARToCommonLibs(type: Copy) { from('../build/outputs/aar') { include '*-release.arr' } into '../SomeSampleApps/libs' }
Estoy tratando de ejecutar esta tarea después de que el arr se genera, que supongo que es ensamblar fase de salida, por lo que he intentado hacer esto en build.gradle
assembleRelease.doLast{ copyAARToCommonLibs }
Construyo el proyecto global usando
gradle build
Pero esta tarea se está ejecutando al principio de todo el proceso.
También he intentado esto:
applicationVariants.all { variant -> variant.assemble.doLast { copyAARToCommonLibs } }
Dentro de android {} propiedad (supongo que eso es lo que se llama?) Ejecución gradle construir, tiene este error: No se pudo encontrar la propiedad 'applicationVariants'
Entonces me encontré con este fragmento:
tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn copyAARToCommonLibs }
Pero parece que esto hace que la tarea se ejecute después de compilar, no sé exactamente cómo modificar esto para ejecutar después de montar.
¿Podría alguien por favor corregirme donde hice mal y cómo puedo obtener este trabajo de trabajo de copia después de que se genera el archivo .arr?
- ¿Por qué gradle android plugin no genera dependencias para intellij idea módulo
- BuildConfig.DEBUG siempre false al crear proyectos de biblioteca con gradle
- BuildConfig no se crea correctamente (Gradle Android)
- La aplicación no se ejecutará en el dispositivo: DELETE_FAILED_INTERNAL_ERROR?
- ¿Cómo ejecutar pruebas filtradas con etiquetas con pepino-jvm y gradle?
- Gradle: cambia la meta de compilación de NDK independiente de la meta de creación de SDK
- Android-Studio ActionBar sherlock error con gradle
- ¿Cómo obtener Gradle 1.9 en android-studio 0.3.6 corriendo?
Parece que finalizedBy
podría ser útil.
assembleRelease.finalizedBy(copyAARToCommonLibs)
Tenga en cuenta el hecho de que de la siguiente manera no va a definir una dependencia:
assembleRelease.doLast { copyAARToCommonLibs }
En realidad … no hace exactamente nada. Necesita ejecutar la tarea:
assembleRelease.doLast { copyAARToCommonLibs.execute() }
Pero ejecutar la tarea de la siguiente manera es desalentado y muy mala práctica.
También puede probar:
assembleRelease.doLast { copy { from('../build/outputs/aar') { include '*-release.aar' } into '../AscendonSDKSamples/libs' } }
- Uso de onResume () para actualizar la actividad
- Intención de navegación de Google para el itinerario con varios waypoints