2017-02-15 3 views
0

Ich habe buildDir in build.gradle gesetzt und alle außer einem Plugins diese Einstellung ehren. Für denjenigen, der darauf besteht, build/reports/license/ zu erstellen und seine Ausgaben dort zu platzieren, möchte ich diese Dateien in meine ${buildDir} verschieben.Gradle: Wie man Ausgaben einer Aufgabe bewegt?

Ich habe versucht, das Hinzufügen eines doLast Block, um die Aufgabe

downloadLicenses { 
    // ... 
    doLast { 
     file("build/reports/license").renameTo("${buildDir}/reports"); 
    } 
} 

aber Gradle klagt

konnte nicht Methode doLast() für Argumente [build_3s5ts0z1u2ed2z2xpd2pa56i $ _run_closure50 $ _closure144 @ 4d98efa4] auf Stammprojekt finden 'Mein Projekt'.

Was fehlt mir hier und wie kann ich die Dateien verschieben, nachdem die Aufgabe erledigt ist?

Bearbeiten: Das Plugin in Frage ist License Gradle Plugin, und ich tat report this as a bug. Ich hoffe auf eine Abhilfe, bis das offiziell behoben ist.

Antwort

2

Welches Plugin ist das?

Versuchen Sie, die folgenden

println downloadLicenses.class.name 

ist, dass der Name einer Aufgabe Druck? Ich vermute, es ist eine Erweiterung Objekt downloadLicenses anstatt eine Aufgabe namens

Angenommen, es gibt eine downloadLicenses Aufgabe, die „versteckt“ von downloadLicenses Erweiterungsobjekt ist, sollte diese

tasks.getByName('downloadLicenses').doLast { ... } 

funktionieren, wenn die „build“ Verzeichnis ist hart-codiert sollten Sie ein Problem mit dem Autor des Plugins

+0

Danke, indem ich 'tasks.getByName ('downloadLicenses')' vor meinen 'doLast' Block innerhalb von' downloadLicenses' gesetzt habe, löste ich das Problem. – Robert

0

Ich bin nicht sicher, ob ich Ihre Frage verstanden, aber, wenn Sie Ihre Datei $ bewegen möchten {builddir}/Berichte ich denke, das Ihr doLast Block sein sollte:

doLast { 
    file("build/reports/license").renameTo(file("${buildDir}/reports")); 
} 

ich hoffe ich Ich helfe dir!

+0

Problem Nun, ja, das ist, was ich auch dachte, aber das bringt mich den obigen Fehler. – Robert

+0

Erhalten Sie den gleichen Fehler auch mit der Datei vor dem zweiten Pfad? Weil in deinem ersten Beitrag nicht. – delca85

+0

Ja, ich tue ... wenn es um die 'Datei (...) 'geht, dürfte der Fehler sehr unterschiedlich sein. Gradle mag das "doLast" nicht. – Robert

Verwandte Themen