Eine build.gradle
Datei repräsentiert eine Instanz von Project
in Großbuchstaben. Aber Project
ist nur eine Schnittstelle. Die Frage ist: Wie bekommt man die Project
Implementierung (Art von wie * .java, * .class), die dem build.gradle
Skript entspricht?Wie erreicht man die Implementierung eines Projekts?
1
A
Antwort
2
build.gradle
entspricht nicht der Project
Implementierung. Es ist ausgeführt auf einer bestandenen Project
Instanz ist dies nicht das Gleiche. Um zu wissen, die Implementierungsklasse von Project
das folgende Skript ausführen:
println project.getClass()
Sie werden org.gradle.api.internal.project.DefaultProject_Decorated
erhalten, die zu this Klasse verweist. Was ist das _Decorated
Suffix? Wie gezeigt here und here markiert es die Klasse als vorverarbeitet. Das Ziel dieser Vorverarbeitung ist:
Erzeugt eine Unterklasse der Zielklasse, um etwas DSL-Verhalten zu mischen.
Es gibt wirklich keinen Grund für die Ablehnung dieser Frage. Viel besser wäre es, darauf hinzuweisen, warum es nicht den Standards entspricht und was getan werden sollte, um das Problem zu beheben. – Opal