lintoptions - android lint ignore



Run lint beim Erstellen von Android Studio-Projekten (4)

Ich möchte in der Lage sein, die Flusenaufgabe zu führen, wenn ich Projekte mit Android-Studio baue, um sicherzustellen, dass die Flusenregeln befolgt werden.

Ich habe versucht, Aufgabenabhängigkeiten zu verwenden, aber ohne Glück. Mein TeamCity-Build-Server verwendet die Build-Task, die die Flusenaufgabe ausführt, so dass das großartig funktioniert. Allerdings scheint android studio die generateDebugSources- und compileDebugJava-Tasks synonym zu verwenden, wenn ich die Debug-Build-Variante ausgewählt habe.

Hier ist, was ich in meinem Build.gradle versucht habe:

assemble.dependsOn lint

https://ffff65535.com


Fügen Sie dazu in build.gradle die folgenden Zeilen zu Ihrem build.gradle hinzu:

android {
  applicationVariants.all { variant ->
    variant.outputs.each { output ->
        def lintTask = tasks["lint${variant.name.capitalize()}"]
        output.assemble.dependsOn lintTask
    }
  }
  ...
}

Dies macht alle Assembly-Aufgaben davon abhängig, dass die Lint-Task sie vor jedem Assembly-Aufruf ausführt, der von Android Studio ausgeführt wird.


Führen Sie einfach die Aufgabe "Prüfen" aus

./gradlew clean check assemblyRelease


Wenn Sie Ihr Android Studio-Projekt nur so konfigurieren möchten, dass die Flussprüfung vor der Standardlaufkonfiguration ausgeführt wird, ohne die Konfiguration der GRADLE-Tasks zu beeinträchtigen, können Sie die folgenden Schritte ausführen.

  1. Öffnen Sie das Dropdown-Menü für die Ausführungskonfigurationen und wählen Sie Bearbeiten

  1. Wählen Sie Ihre App-Ausführungskonfiguration aus

  1. Drücken Sie das '+', um einen neuen Schritt hinzuzufügen

  1. Wählen Sie "Gradle-aware Make"

  1. Geben Sie "check" ein und wählen Sie die Option mit dem Namen Ihres App-Moduls und prüfen Sie. (Meine ist :app:check )

  1. Drücken Sie die Gradle-aware make oben-Taste, um den neuen check vor dem vorhandenen Gradle-aware make Schritt zu verschieben

Jetzt führt Android Studio die Flusenprüfung durch und schlägt den Build fehl, wenn Flusenfehler auftreten.


Wenn Sie das Android Studio-Projekt zwingen möchten, die Flusenprüfung vor der Standardlaufkonfiguration auszuführen, ohne die Konfiguration der GRADLE-Tasks zu beeinflussen UND dies im GRADLE-Build-System zu tun, können Sie den folgenden Block außerhalb von android hinzufügen Blockieren Sie im build.gradle des App-Moduls wie folgt:

android {
....
    lintOptions {
        abortOnError true
    }
}

tasks.whenTaskAdded { task ->
    if (task.name == 'compileDevDebugSources') {
        task.dependsOn lint
        task.mustRunAfter lint
    }
}

Ersetzen Sie compileDevDebugSources mit der gewünschten Build-Variante, die Sie bereits definiert haben, z. compileReleaseSources , compileDebugSources , compileStagingDebugSources usw.

Dies wurde in Android Studio 3.0 getestet





android-lint