Kann eine Groovy-Klasse (in buildSrc/src/main/groovy
) direkt auf das Projekt zugreifen, oder muss das Projekt explizit übergeben werden?Kann eine groovy build script class direkt auf das Gradle-Projekt zugreifen?
Ich kann auf das Projekt zugreifen, indem ich es explizit als Methodenparameter übergebe, aber ich möchte es nicht weitergeben. Ich möchte zum Beispiel über das Projekt Zugriff auf das Projekt erhalten ein statischer Methodenaufruf Ist diese Art von implizitem Zugriff möglich?
explizite Zugriffs
import org.gradle.api.Project
class MyClazz {
static void foo(Project project) {
println project.version
}
}
Aufgabe in build.gradle
task foo() << {
MyClazz.foo(project)
}
Implicit Zugriff über statischen Methodenaufruf (dies ist das gewünschte Zugriffsmuster)
import org.gradle.api.Project
class MyClazz {
static void foo() {
println Project.getProject().version
}
}
Tas k in build.gradle
task foo() << {
MyClazz.foo()
}
, wie Sie das Skript nennst? – AdamSkywalker
@AdamSkywalker Ich aktualisierte die Frage, um die Aufgabe in build.gradle –
zu integrieren Ich denke, Sie verstehen es nicht schlimmer als ich - Aufruf einer Methode während der Ausführung der Aufgabe hat keinen bestimmten Kontext. Gradle API hat keine Project.getProject() -Analoga, so dass Sie entweder das Projekt in Params übergeben müssen oder dasselbe tun müssen, bevor Ihre eigentliche Aufgabe in einer Service-Setup-Aufgabe ausgeführt wird. – AdamSkywalker