Gradle println druckt, wenn es nicht aufgerufen wird
Mein Ziel ist es, eine Nachricht auf der Konsole ausgegeben, wenn der idea
task ausgeführt wird, aber leider wird die Nachricht gedruckt werden, wenn etwas ausgeführt wird. Warum sind die print-Zeilen ausgeführt werden, wenn die idea
task nicht ausgeführt wird? Wie kann ich eine Meldung angezeigt, nur wenn die idea
task ausgeführt wird?
bauen.gradle
apply plugin: 'idea'
task hello << {
println 'Hello world!'
}
tasks.idea() {
println '*********************************************************'
println '* You should open build.gradle as a native project from *'
println '* within IntelliJ. *'
println '*********************************************************'
}
Ausgabe des Befehls gradle hello
*********************************************************
* You should open build.gradle as a native project from *
* within IntelliJ. *
*********************************************************
:hello
Hello world!
BUILD SUCCESSFUL
Total time: 2.846 secs
Funktionierende Lösung
tasks.getByPath('idea') << {
println '*********************************************************'
println '* You should open build.gradle as a native project from *'
println '* within IntelliJ. *'
println '*********************************************************'
}
- stackoverflow.com/questions/23288470/...
- Siehe auch: Gradle immer tut println von einer Aufgabe
- vielen Dank für die Verlinkung
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie benötigen, um Ihre
println
s in einer action und fügt es deridea
Aufgabe. Das folgende Beispiel zeigt die Verwendung derdoFirst
Aktion:Gibt es einen bestimmten Grund, warum Ihr code ausgeführt wird, bevor die
idea
Aufgabe ausgeführt wird: Es wird ausgewertet, wie Konfigurations-code ausgeführt, während der Konfigurations-phase Gradle-build-lifecycle. Nur Aktionen ausgeführt werden, während der Ausführungsphase. Ihrehello
Aufgabe macht.EDIT:
idea
istorg.gradle.plugins.ide.idea.model.IdeaModel
in diesem Zusammenhang und auch nicht die Aufgabe.Wenn Sie erzwingen möchten, gradle zu drucken, werden einige Nachrichten aber nur in der Ausführungsphase, bewegen
println
Befehle zudoFirst
oderdoLast
. Beispiel für den Krieg Aufgabe: