Gradle: ¿cómo hacer que las tareas se ejecuten una tras otra?

Básicamente tengo 4 tareas que necesito para ejecutar secuencialmente, pero no puedo hacer que lo hagan, tengo que ejecutarlo uno por uno en la línea de comandos así:

gradle :drmdexsecondary:compileReleaseJava --info --debug --stacktrace gradle :drmdexsecondary:dexClasses --info --debug --stacktrace gradle :drmdexsecondary:jar --info --debug --stacktrace 

Aquí está mi build.gradle:

EvaluationDependsOnChildren ();

 task dexClasses( type:Exec ) { // compileJava.execute() String cmdExt = Os.isFamily(Os.FAMILY_WINDOWS) ? '.bat' : '' println("${buildDir}") println("${androidSdkDir}\\build-tools\\${buildToolsVersion}\\dx${cmdExt} --dex --output=${buildDir}\\classes\\classes.dex ${buildDir}\\classes\\release") commandLine "cmd", "/c", "${androidSdkDir}\\build-tools\\${buildToolsVersion}\\dx${cmdExt} --dex --output=${buildDir}\\classes\\classes.dex ${buildDir}\\classes\\release" } task jar(type: Jar) { from ("${buildDir}\\classes\\classes.dex") } 

Mi problema es básicamente: 1. la palabra clave dependsOn no funciona … sólo se ignoran sin ningún mensaje de registro 2. taskname.execute() función no funciona … sólo se ignoran sin ningún mensaje de registro 3. compileReleaseJava no se reconoce dentro de build.gradle con este error particular: Could not find property 'compileJava' on task ':drmdexsecondary:dexClasses'.

¿Alguien por favor ayuda? He consultado y copia de pasta de la documentación, pero ninguno de ellos parece trabajar. Incluso he intentado volver a instalar gradle … hay tan pocos códigos de ejemplo allí y aunque entiendo el concepto, parece tan difícil de traducir mi intención en el código de gradle de trabajo, por lo que si hay buenos recursos para ayudar, Será muy apreciado también … ¡Gracias!

Debe leer acerca de las tareas de gradle y más acerca de las tareas . Quieres depender de las cosas antes que invocar las cosas.

También creo que usted debe leer acerca de, y utilizar el plug android gradle .

A su pregunta original, cuando se define una tarea, el código entre los paréntesis se ejecuta en el momento de la configuración. Las acciones de una tarea se ejecutan cuando se ejecuta la tarea y se deben agregar a la lista de acciones de la tarea. Esto se hace utilizando doFirst, doLast o el operador <<.

Aquí hay un ejemplo de la documentación de gradle.

 task taskX << { println 'taskX' } task taskY << { println 'taskY' } task taskZ << { println 'taskZ' } taskX.dependsOn taskY taskY.dependsOn taskZ taskZ.shouldRunAfter taskX 

Para secuencial o lo que sea la secuencia que desea ejecutar sus tareas, hago lo siguiente en mi archivo build.gradle:

 def modules = ["X", "Y", "Z", "ZZ"] if (modules.size() > 1) { for(j in 1 .. modules.size()-1 ) { tasks[modules[j]].mustRunAfter modules[values[j-1]] } } 
  • Conjunto de subprocesos en Java
  • Android / Java - Fecha Diferencia en días
  • No se puede establecer el valor DSCP en la aplicación android
  • ¿Cómo hacer lo contrario de atributo de preferencia android: dependencia?
  • Android NullpointerException al intentar recuperar datos de SQLiteOpenHelper
  • Cómo capturar el error 'Bitmap demasiado grande para ser cargado en una textura'
  • Android android.permission.SEND_SMS no funciona
  • Manejo de errores en Volley (con futuros)?
  • Desarrollo de Android para desarrolladores de iOS
  • La variante actualmente seleccionada "arm-debug" utiliza APK divididos, pero ninguno de los 4 split-apks son compatibles con el dispositivo actual
  • Android API 23 - HttpClient 4.X reempaquetado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.