2

Ich suche nach einer Möglichkeit, einen lint Fehler vorübergehend zu unterdrücken oder einen Fehler nach einem bestimmten Datum oder einer bestimmten Bedingung zu planen.Wie man einen `Flusen'-Fehler einplant (Update: Papierschnitt verwenden)

Hier ist ein Zusammenhang:

ich einen Android-App, die in mehreren Sprachen übersetzt und ich habe es so eingerichtet, dass lint mit einem Fehler fehlschlägt, wenn es fehlende Übersetzungen. Offensichtlich geschieht dies, damit nicht übersetzte Fäden nicht in die Wildnis gelangen. Immer wenn es eine neue Ressource string gibt, dauert es eine Weile, bis es übersetzt wird, während lint fehlschlägt. Dies kann unterdrückt werden, oder die Zeichenfolgen können als unübersetzbar markiert werden, aber das schlägt den Zweck der Überprüfung an erster Stelle.

Abgesehen von diesem Kontext gibt es viel mehr Instanzen, wenn eine bestimmte Einstellung "temporär" ist. Ich mag es nicht, daran denken zu müssen, jeden Schalter umzudrehen.

Die Builds sind auf einem CI-Server, Releases sind oft und das passiert in einem Team, wo jeder "Warnungen" "vorübergehend" ignorieren kann. Gibt es einen automatischen Weg, um sicherzustellen, dass die Dinge bei der Veröffentlichung nicht ignoriert werden?

Update: Da diese Frage, jemand eine Bibliothek entwickelt, das genau das, was tut, fragte ich und mehr: https://github.com/Stuie/papercut

Antwort

3

Ich weiß nicht, wie Sie determin, wenn es Zeit ist, Flusen de/aktivieren . Aber vielleicht hilft:
Sie Lint-Schalter können mit einem boolean im gradle Skript on/off:

android { 
    lintOptions { 
    if (lintOn){ 
    checkReleaseBuilds true 
    abortOnError true 
    } else { 
    checkReleaseBuilds false 
    abortOnError false 
    } 
} 
} 

hinzufügen lintOn=false zu Ihrem gradle.properties, sonst gradle wird es nicht als Variable erkennen.
Nun fügen Sie cann eine Aufgabe und machen es vor der Build-Task auszuführen:

task preBuild << { 
    // do stuff to determin if lint should run 
    lintOn = true 
} 
build.dependsOn preBuild 

In dieser Prebuild Aufgabe, die Sie jetzt einen Code implementieren können zu überprüfen, ob Sie Flusen laufen sollen oder nicht.
Here sind einige gute Beispiele dafür, was eine Aufgabe tun kann.