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

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

  • http://tools.android.com/tips/lint-checks
  • http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Lint-support
  • http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.LintOptions.html#com.android.build.gradle.internal.dsl.LintOptions:checkReleaseBuilds
  • Android lint使用gradle启用检查
  • lint任务上的gradle构build失败
  • http://developer.android.com/tools/help/lint.html
  • http://developer.android.com/tools/debugging/improving-w-lint.html

我想在这里用一些已经提到的,而不是TODO或FIXME的评论,用它来确保用于开发/debugging/testing的代码块没有达到生产。

为此,我想做两件事: – 启用StopShip检查,因为它是默认禁用的 – 将严重性从警告(默认)更改为错误

(假设我们在gradleconfiguration中使用了abortOnError true )。

我没有做到这一点! 无论我尝试的Android构build不会失败,如果我在我的代码中添加// 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' } 

我也尝试在文件>设置>项目设置>检查(或Mac上的Android Studio>首选项>检查)中更改我的Android Studio首选项。 在这里,我检查了Code contains STOPSHIP markerCode 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> 

Solutions Collecting From Web of "使用Lint Option StopShip如何使版本发布失败?"

我终于破解了! fatal 'StopShip' 。 这就是最终做到的! 留下我的发现,以防万一。

用我的build.gradleconfiguration中的fatal 'StopShip'代替error 'StopShip'解决了这个问题。

我不完全明白为什么我以前的error 'StopShip'尝试不起作用,因为abortOnError文档明确指出:

 Whether lint should set the exit code of the process if errors are found 

我正在将StopShip检查严重性标记为错误。 它看起来像abortOnError只会使gradle生成中止只有FATAL错误。 谁能确认?

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