Android - 将所有 lint 警告设置为错误,某些警告除外
Android - set all lint warnings as errors except for certain ones
当引入 lint-baseline.xml
文件中没有的新 lint 警告时,我试图让我的持续集成失败。我想将所有 lint 警告都视为错误(因此构建被中止),但我想要一种方法来指定某些 lint 检查被视为信息或警告级别,以便它们仍然出现在 lint 结果中,但不要'导致构建中止。
下面是我想做的基本操作的示例(除非这不起作用,如果存在任何未忽略的警告,构建将失败):
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
}
有没有一种简单的方法可以将所有 lint 检查都视为错误,但不包括某些检查?我考虑过将所有 200 多个 lint 检查手动设置为错误级别,但这不是未来的证明,因为每次添加新的 lint 检查时我都必须更新列表。
this doc 中的信息似乎不是一个真正的选择,我建议:
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', ...
}
}
如果不使用GradlelintOptions
(checkAllWarnings
、warningsAsErrors
等)配置哪些警告应该可以达到你想要的效果应该被视为错误。请改用 lint.xml。您可以在那里执行以下操作:
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="MissingTranslation" severity="warning" />
<!-- The following must be at the bottom of your file!
All lint issues (not listed above) will be treated as errors. -->
<issue id="all" severity="error" />
</lint>
在我的测试中,这似乎工作正常,所有警告都被视为错误,但 lint.xml 顶部列出的警告除外。
但是,我没有将它与 lint-baseline.xml 结合使用进行测试,但我看不出为什么它不能在那里工作。
对我来说,这个配置有效:
android {
lintOptions {
warningsAsErrors true
warning 'MissingTranslation', ...
}
}
这些选项似乎在 "correct order"(又名 "as I need it")中进行了评估,即首先将所有警告提升为错误,然后针对单个问题 ID 再次覆盖此设置。使用 warning
而不是 disable
或 ignore
可确保问题在报告或 IDE.
中仍然可见
当引入 lint-baseline.xml
文件中没有的新 lint 警告时,我试图让我的持续集成失败。我想将所有 lint 警告都视为错误(因此构建被中止),但我想要一种方法来指定某些 lint 检查被视为信息或警告级别,以便它们仍然出现在 lint 结果中,但不要'导致构建中止。
下面是我想做的基本操作的示例(除非这不起作用,如果存在任何未忽略的警告,构建将失败):
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
}
有没有一种简单的方法可以将所有 lint 检查都视为错误,但不包括某些检查?我考虑过将所有 200 多个 lint 检查手动设置为错误级别,但这不是未来的证明,因为每次添加新的 lint 检查时我都必须更新列表。
this doc 中的信息似乎不是一个真正的选择,我建议:
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', ...
}
}
如果不使用GradlelintOptions
(checkAllWarnings
、warningsAsErrors
等)配置哪些警告应该可以达到你想要的效果应该被视为错误。请改用 lint.xml。您可以在那里执行以下操作:
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<issue id="MissingTranslation" severity="warning" />
<!-- The following must be at the bottom of your file!
All lint issues (not listed above) will be treated as errors. -->
<issue id="all" severity="error" />
</lint>
在我的测试中,这似乎工作正常,所有警告都被视为错误,但 lint.xml 顶部列出的警告除外。 但是,我没有将它与 lint-baseline.xml 结合使用进行测试,但我看不出为什么它不能在那里工作。
对我来说,这个配置有效:
android {
lintOptions {
warningsAsErrors true
warning 'MissingTranslation', ...
}
}
这些选项似乎在 "correct order"(又名 "as I need it")中进行了评估,即首先将所有警告提升为错误,然后针对单个问题 ID 再次覆盖此设置。使用 warning
而不是 disable
或 ignore
可确保问题在报告或 IDE.