2016-07-29 18 views
0

finden Sie unter init.gradle Datei, die eine gemeinsame Aufgabe für alle meine Projekte hat: -gradle Init-Skript Aufgabe nicht aufgerufen: Gradle 2.14.1

rootProject { apply plugin: "eclipse" } 

gradle.allprojects{ 
    ext.commonTaskForEveryBuild = { 
     println "Common task for every build starts here..." 
     println "Common task for every build ends here..." 
    } 
} 

Auch unter Probe build.gradle finden für einen meiner Projekt: -

apply plugin : 'java' 

clean.doFirst{ 
    println "Before invoking commonTaskForEveryBuild" 

    //This is invocation of commonTaskForEveryBuild 
    commonTaskForEveryBuild 

    println "After invoking commonTaskForEveryBuild" 
} 

Nachfolgend finden Sie die Protokolle für die Ausführung von "gradle clean" Aufgabe für die Probe build.gradle Datei sind: -

: clean

Vor commonTaskForEveryBuild Aufruf

Nach commonTaskForEveryBuild Aufruf

: clean up-to-DATE

BUILD ERFOLGREICH

Gesamtzeit: 3,722 Sekunden

Sieht aus wie sauber .doFirst wird aufgerufen, ist es aber nicht Aufrufen der Definition von commonTaskForEveryBuild. Allerdings gibt es keine Kompilierzeit oder Laufzeitfehler. Bitte vorschlagen.

Antwort

1

Es ist in Ordnung, dass Ihre Aufgabe nicht aufgerufen wird, da Ihr Skript nicht versucht, es zu tun, und es ist nicht einmal eine Aufgabe. Sie bekommen nur Ihre commonTaskForEveryBuild Instanz, aber nichts damit zu tun.

Sie müssen möglicherweise the official user guide lesen, um herauszufinden, wie eine Aufgabe von einer anderen aufgerufen wird. Kurz gesagt - dies geschieht normalerweise über Aufgabenabhängigkeiten. Sie müssen Ihre clean Aufgabe abhängig von der commonTaskForEveryBuild Aufgabe machen, um sie vor der clean Aufgabenausführung auszuführen.

clean.dependsOn commonTaskForEveryBuild 

Darüber hinaus geht es um Aufgaben, aber in Ihrem Fall ext.commonTaskForEveryBuild = {...} ist nicht einmal eine Aufgabe, aber nur ein Verschluss und es muss als commonTaskForEveryBuild()

ausgeführt werden: Dies könnte wie so getan werden
Verwandte Themen