2016-07-14 13 views
0

Was ist der Unterschied zwischen diesen beiden Aufgaben. In der Ausgabe von ./gradlew Tasks wird nur Task mit < < in ihrer Definition angezeigt.Was ist die Bedeutung von << in gradle Aufgabe Definition

task greet(type: GreetingToFileTask) { 
    destination = { project.greetingFile } 
} 

task sayGreeting(dependsOn: greet) << { 
    println file(greetingFile).text 
} 

Die obigen Zeilen aus gradle Dokumentation sind Here

Antwort

1

Die << ist eine Verknüpfung zum toLast Konfigurationselement einer Aufgabendefinition. I.e. die beiden folgenden Erklärungen sind äquivalent:

task hello << { 
    println 'Hello world!' 
} 

und:

task hello { 
    doLast { 
     println 'Hello world!' 
    } 
} 

(Beispiel aus Gradle Dokumentation entnommen here).

Nun definieren Sie im ersten Code-Snippet eine Aufgabe und konfigurieren ihre destination-Eigenschaft. Die Aufgabe wird jedoch nur ausgeführt, wenn sie benötigt wird.

Im zweiten Code-Schnipsel, aber Sie definieren tatsächlich eine Aktion, die immer während der Konfigurationsphase ausgeführt wird, unabhängig von den für die Ausführung gezielten Aufgaben (zitieren aus here):

A Aufgabe hat sowohl Konfiguration als auch Aktionen. Wenn Sie die < < verwenden, sind Sie einfach eine Verknüpfung verwenden, um eine Aktion zu definieren. Der im Konfigurationsabschnitt Ihres Tasks definierte Code wird während der Konfigurationsphase des Builds ausgeführt, unabhängig davon, welche Task angesprochen wurde.