Ich verwende Gradle 2.12 (oder neuer) mit einer geeigneten Version des Android Gradle Plugins in meinem Projekt. Gradle 2.12 führte die compileOnly
-Konfiguration ein, warum bekomme ich einen Fehler, wenn ich versuche, es zu benutzen?
Die Methode compileOnly () für Argumente
konnte nicht gefunden werden
Einfache Verwendung provided
anstelle von compileOnly
Siehe Zypern
Beachten Sie den folgenden Satz aus den Versionshinweisen zu Gradle 2.12 bezüglich der neuen compileOnly
Konfiguration (meine Betonung):
Sie können jetzt Abhängigkeiten angeben, die nur zur Kompilierzeit in Verbindung mit dem Java-Plugin verwendet werden sollen.
Das Java Gradle-Plugin ist also eine Komponente, die wir bei der Beantwortung dieser Frage berücksichtigen müssen. Wir können die compileOnly
-Konfiguration finden, die im Java Gradle-Plugin Quellcode für neue Versionen.
Allerdings erweitern die Android Gradle Plugins das Java Gradle Plugin nicht . Tatsächlich glaube ich, dass die Android-Plugins eine Art 'frankenplugin' darstellen, wobei einige Funktionen geliehen sind, aber nicht vom Java-Plugin geerbt sind. Die folgenden Teile des Quellcodes unterstützen diese Idee.
Von die Basis-Android-Plug-in-Klasse :
%Vor%Die Android Gradle-Plugins enthalten daher Funktionen aus dem Basis Java Gradle-Plugin , nicht von vollständiges Java Gradle-Plugin . Außerdem gibt es eine explizite Überprüfung , dass das vollständige Java Gradle Plugin nicht neben einem Android Gradle Plugin angewendet wird:
%Vor% Gestützt auf diese Informationen ist meine Vermutung, dass compileOnly
noch nicht manuell vom Java Gradle Plugin auf das Android Gradle Plugin portiert wurde. Es wird wahrscheinlich nicht erscheinen, bevor wir ein Android Gradle-Plugin mit mindestens Gradle-Version auf 2.12 oder höher gesetzt haben.
Tags und Links gradle android-gradle