2015-07-15 19 views
7

Ich versuche, eine Mega-Task für meine Android-Anwendung zu schreiben, die den Google Appengine-Entwickler-Server startet, einen Test ausführt und dann den Server schließt.Android-Gadle-Aufgabe Google Appengine

Was ich versucht habe, so sieht weit wie folgt aus:

task runAppEngine (dependsOn: ":backend:appengineRun") <<{ 
    //run test 
    //stop development server 
    } 

Die appengineRun Aufgabe ausgeführt wird, aber was auch immer ich in der doLast Abschnitt der gradle Aufgabe scheint setzen nie ausgeführt werden. Wenn ich zum Beispiel eine println-Anweisung einfüge, wird sie nie auf die Konsole gedruckt.

Ich bin mir auch nicht sicher, wie man appengineStop von der Aufgabe aufrufen soll, um den Entwicklungsserver ebenso zu stoppen.

Danke für jede Hilfe, die jemand anbieten kann!

Antwort

10

Sie müssen wahrscheinlich Ihre backend:appengineRun Aufgabe in daemon Modus ausführen, damit der Gradle-Prozess fortgesetzt werden kann. Siehe: https://github.com/GoogleCloudPlatform/gradle-appengine-plugin#convention-properties

Dieser Hack in meinen Tests

task runAppEngine (dependsOn: ":backend:appengineRun") { 
    project(":backend").afterEvaluate { backend -> 
    backend.extensions.appengine.daemon = true 
    }    
    doLast { 
    println "started the server!" 
    } 
} 

runAppEngine.finalizedBy ":backend:appengineStop" 
// or whatever task you want it to stop after 
+0

Dank, die brillant gearbeitet scheint zu funktionieren! –