Подтвердить что ты не робот

Как сделать сборку выпуска 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>
4b9b3361

Ответ 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. Кто-нибудь может подтвердить?

Конечно, если кто-то предлагает лучшее решение/объяснение, пожалуйста, разделите.