2016-07-20 7 views
0

Ich wollte ein bestimmtes Modul aus meinem Projekt über eine Aufgabe erstellen, die wiederum ihre Tests ausführen wird. Grundsätzlich möchte ich "grandle: module: build" von einer Aufgabe ausführen.Erstellen Sie ein Modul mit einer Aufgabe

task thatBuildsTheModule() << { 
    ..... 
} 

task A() << { 
    ...... 
    tasks.thatBuidsTheModule.execute() 
    ...... 
} 

Wie kann ich das tun?

Antwort

1

Sie sind in der Nähe. Es wird nicht empfohlen, die Ausführung auf einer task aufzurufen. Anstatt die Aufgabe Graph verwenden und Ihre Erbauer Aufgabe ein abhängiges Ihrer A Aufgabe machen, etikettiert anotherTask in diesem Beispiel

// create builder task 
task thatBuildsTheModule << { 
    println "Hello $it.name" 
} 
// create our other task 
task anotherTask << { 
    println "Hello $it.name" 
} 
// make `anotherTask`'s execution depend on the execution of our builder task 
anotherTask.dependsOn thatBuildsTheModule 

Jetzt können wir sehen, dass nur die anotherTask Aufgabe ausführt wir auch die thatBuildsTheModule Aufgabe ausführen

$ ./gradlew -q anotherTask 
Hello thatBuildsTheModule 
Hello anotherTask 
+0

Vielen Dank! Gibt es auch eine Möglichkeit, ein Modul aus einer Aufgabe zu erstellen? Wie kann ich einen Build innerhalb einer Aufgabe auslösen? (im Grunde "grandle: module: build" von einer Aufgabe) – Javier

+0

Sie möchten die Aufgabe von der anderen Aufgabe abhängig machen. 'project ('modul'). tasks.findByName ('build'). dependsOn anotherTask' wird jetzt '' anotherTask' ausgeführt, wird auch ': module: build' ausgeführt. – JBirdVegas

+0

projekt ('modul'). Tasks.findByName ('build'). DependsOn ist null. Was könnten die möglichen Gründe sein? – Javier