2017-03-10 37 views
8

Próbuję spowodować, że moja ciągła integracja nie powiedzie się, gdy zostaną wprowadzone nowe ostrzeżenia o kłaczkach, których nie ma w pliku lint-baseline.xml. Chcę, aby wszystkie ostrzeżenia o lintach były traktowane jako błędy (więc kompilacja jest przerywana), ale chciałbym, aby sposób określania niektórych sprawdzeń lint traktować jako poziom informacyjny lub ostrzegawczy, tak aby nadal pojawiały się w wynikach szarpie, ale nie nie powodują przerwania kompilacji.Android - ustaw wszystkie ostrzeżenia o lintach jako błędy, z wyjątkiem pewnych

Oto przykład zasadzie to, co chciałbym zrobić (oprócz tego nie działa, kompilacja nie powiedzie się, jeśli istnieje jakieś non-zignorował ostrzeżenia):

lintOptions { 
    lintConfig file("lint.xml") 
    baseline file("lint-baseline.xml") 
    checkAllWarnings true 
    warningsAsErrors true 
    abortOnError true 
    informational 'MissingTranslation, ...' // don't fail the build for these 
} 

Czy istnieje prosty sposób traktować wszystkie sprawdzenia kłaczków jako błędy, z wyjątkiem niektórych? Pomyślałem o ręcznym ustawieniu wszystkich ponad 200 kontroli lint do poziomu błędu, ale to nie byłoby zbyt przyszłe, ponieważ musiałbym aktualizować listę za każdym razem, gdy dodawano nowe kontrole lint.

Odpowiedz

1

robi wydaje informacyjny jest realną opcją od this doc, proponuję:

android { 
    lintOptions { 
     checkAllWarnings true 
     warningsAsErrors true 
     // use this line to check all rules except those listed 
     disable 'MissingTranslation', ... 
     //OR this line to check but not worry about result (i think this is what you want) 
     ignore 'MissingTranslation', ... 
    }  
} 
+0

Problem polega chcę ostrzeżenia, aby nadal być oznaczone w IDE i jeśli to możliwe, także w Android wyników kontroli studio. Szuka sposobu, aby kompilacje ciągłej integracji zawiodły po wprowadzeniu nowych ostrzeżeń o lintach, z możliwością wyznaczania pewnych ostrzeżeń, które nie powinny zawieść kompilacji. Nie chcę jednak, aby te ostrzeżenia zostały całkowicie zignorowane lub wyłączone. – starkej2

+0

Ignore wydaje się być słabszą wersją disable - uruchamia się, ale nie zawiedzie kompilacji, dlatego powinna się logować. czy to nie wystarczy, gdy wszystkie testy są włączone? A może zrozumiałem znaczenie ignorowania? –

+0

Myślę, że zignorowanie uniemożliwia sprawdzenie linta. Nie widzę ignorowanych ostrzeżeń o lintach w Android Studio lub wyników lint. – starkej2