Как сделать сборку выпуска Grade с помощью опции Lint Option StopShip?
Я много читал о поддержке StopShip
Android Lint Check и Gradle для нее
Я хотел бы использовать, как некоторые из них здесь, в SO уже упоминались, вместо комментариев TODO или FIXME, используйте его для обеспечения того, чтобы блок кода, предназначенный для разработки/отладки/тестирования, не доходил до производства.
Для этого я хотел бы сделать 2 вещи:
- включить проверку StopShip, поскольку она по умолчанию отключена
- изменить степень серьезности от предупреждения (по умолчанию) до ошибки
(предполагая, что мы используем abortOnError true
в нашей конфигурации Gradle).
Я не могу этого добиться! Независимо от того, что я пробовал, сборка Android не терпит неудачу, если я добавлю комментарий // STOPSHIP
в свой код. Это нечетно, поскольку в textEditor его выделено как ошибка, и если я запустил проверку Lint (Analyze > Inspect Code...), она указана в качестве одной из проблем.
Вот что я пробовал в своем build.gradle
lintOptions {
checkReleaseBuilds true
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError true
enable 'StopShip'
error 'StopShip'
}
Я также попытался изменить настройки Android Studio в меню "Файл" > "Настройки" > "Настройки проекта" > "Инспекции" (или "Студия Android" > "Настройки" > "Инспекции на Mac" ). Здесь я проверил Code contains STOPSHIP marker
и изменил серьезность на ошибку, но все равно ничего.
Вот что выглядит мой lint.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="BackButton" severity="warning" />
<issue id="EasterEgg" severity="warning" />
<issue id="FieldGetter" severity="warning" />
<issue id="IconExpectedSize" severity="warning" />
<issue id="RtlCompat" severity="error" />
<issue id="RtlEnabled" severity="warning" />
<issue id="RtlHardcoded" severity="warning" />
<issue id="SelectableText" severity="warning" />
<issue id="StopShip" severity="error" />
<issue id="TypographyQuotes" severity="warning" />
<issue id="UnusedIds" severity="warning" />
</lint>
Ответы
Ответ 1
Я, наконец, разорву его! fatal 'StopShip'
. Что, наконец, все! Оставляя свое открытие, если оно помогает кому-то.
Замена error 'StopShip'
на fatal 'StopShip'
в моей конфигурации build.gradle
разрешила проблему.
Я не совсем понимаю, почему мои предыдущие попытки с error 'StopShip'
не работали, поскольку abortOnError docs четко заявляет:
Whether lint should set the exit code of the process if errors are found
и я отмечал серьезность проверки StopShip
как ошибку. Похоже, что abortOnError
сделает только сборку gradle прерванной только с ошибками FATAL. Кто-нибудь может подтвердить?
Конечно, если кто-то предлагает лучшее решение/объяснение, пожалуйста, разделите.