2017-01-30 1 views
1

Ich möchte verschiedene Flusen Optionen pro Build-Typ haben. Ich habe versucht, die Optionen zu den entsprechenden bauen Typen wie diese einfach hinzufügen:Verschiedene Flusen-Optionen pro Build-Typ

android {  
    buildTypes { 
     debug { 
      lintOptions { 
       textReport true 
       textOutput 'stdout' 
       warningsAsErrors false 
       abortOnError true 
      } 
     } 
     release { 
      lintOptions { 
       textReport true 
       textOutput 'stdout' 
       ignoreWarnings false 
       warningsAsErrors true 
       abortOnError true 
      } 
     } 
    } 

aber das funktioniert nicht wie erwartet: z.B. In meinem Projekt habe ich ein paar Warnungen, aber keine Fehler. So würde ich erwarten

./gradlew lintRelease 

zum Scheitern verurteilt, aber

./gradlew lintDebug 

um erfolgreich zu sein (mit Warnungen natürlich). Aber das ist nicht der Fall. Mit der oben gezeigten Konfiguration schlagen beide Builds fehl.

Das Merkwürdige ist, dass es abhängig von der Reihenfolge ist: z.B. wenn ich den ganzen debug {} Block nach release {} verschiebe, dann sind beide Builds immer erfolgreich: so scheint es, dass nur die neuesten Optionen jemals benutzt werden ...

Was fehlt mir - oder wie behebt man das?

Ich benutze gradle Version 3.3

+0

Nach dem [DSL] (http: //google.github .io/android-gradle-dsl/current /) gibt es nur eine globale lintOptions (und nicht eine pro Build-Typ). Dies erklärt, warum die neueste Konfiguration immer in meinem Beispiel gewinnt ... – TmTron

Antwort

0

als Behelfslösung können wir eine gradle Eigenschaft, die wir "debug"/"Release" einstellen: wie hier erklärt: Gradle plugin does not propagate debug/release to dependencies - Comment#91

z.B. in der gradle.properties-Datei des Projektes definiert eine Variable:

myBuildType=debug 

Dies wird sicherstellen, dass der Standard-Build-Typ „debug“. Sie können es über ein gradle Befehlszeilenargument überschreiben

./gradlew.bat -PmyBuildType=release ... 

und in der build.gradle-Datei des Projektes oder Teilprojekte:

warningsAsErrors rootProject.properties['myBuildType'] == 'release' 
Verwandte Themen