问题 如何使用Lint Option StopShip使Grade发布版本失败?


我已经阅读了很多关于 StopShip Android Lint Check和Gradle支持它

我想使用SO中的一些已经提到的,而不是TODO或FIXME注释,使用它来确保用于开发/调试/测试的代码块不能达到生产。

为此,我想做两件事: - 启用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中的Android Studio>首选项>检查)中更改我的Android Studio首选项。我在这里查了一下 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>

5069
2017-11-03 16:25


起源



答案:


我终于搞砸了! fatal 'StopShip'。这就是最终做到的!离开我的发现,万一它可以帮助任何人。

更换 error 'StopShip' 同 fatal 'StopShip' 在我的 build.gradle config解决了这个问题。

我不完全理解为什么我以前的尝试 error 'StopShip' 没有用,就像 abortOnError文档 明确说明:

lint是否应该在发现错误时设置进程的退出代码

而我正在标记 StopShip 检查严重性为错误。看起来像 abortOnError 只会使Gradle构建中止FATAL错误。谁能确认一下?

当然,如果有人提供更好的解决方案/解释,请分享。


11
2017-11-05 02:45



默认值为 StopShip 是 warning,和 error 和 fatal 对我来说,以同样的方式工作 abortOnError正如预期的那样。 (使用Gradle插件1.5.0) - TWiStErRob


答案:


我终于搞砸了! fatal 'StopShip'。这就是最终做到的!离开我的发现,万一它可以帮助任何人。

更换 error 'StopShip' 同 fatal 'StopShip' 在我的 build.gradle config解决了这个问题。

我不完全理解为什么我以前的尝试 error 'StopShip' 没有用,就像 abortOnError文档 明确说明:

lint是否应该在发现错误时设置进程的退出代码

而我正在标记 StopShip 检查严重性为错误。看起来像 abortOnError 只会使Gradle构建中止FATAL错误。谁能确认一下?

当然,如果有人提供更好的解决方案/解释,请分享。


11
2017-11-05 02:45



默认值为 StopShip 是 warning,和 error 和 fatal 对我来说,以同样的方式工作 abortOnError正如预期的那样。 (使用Gradle插件1.5.0) - TWiStErRob