2016-03-20 7 views
1

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?

+0

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

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.