Verwendung des 'compileOnly'-Scopes in Android-Projekten?

8

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
    
Alix 14.06.2016, 07:34
quelle

2 Antworten

3

Einfache Verwendung provided anstelle von compileOnly

Siehe Zypern

    
Filipe Bezerra de Sousa 11.01.2017, 00:09
quelle
10

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.

    
stkent 19.07.2016 12:53
quelle

Tags und Links