Error Prone的XepAllSuggestionsAsWarnings标识在build.gradle中失效问题
问题原因分析及解决方案
以下是几种可能导致你遇到该问题的原因:
参数未正确注入编译任务
-XepAllSuggestionsAsWarnings是ErrorProne的编译器参数,必须添加到Java/Kotlin编译任务的compilerArgs中才能生效。如果只是在build.gradle.kts里随意添加这个参数,未关联到编译任务的配置,ErrorProne根本不会读取到它。这时RemoveUnusedImports会回到默认的SUGGESTION级别,而该级别默认不会在assemble阶段输出警告,所以你看不到提示。正确的配置示例(Java项目):
tasks.withType<JavaCompile> { options.compilerArgs.add("-XepAllSuggestionsAsWarnings") // 确保已经删除了之前单独设置的warn("RemoveUnusedImports") }遗留的显式规则配置未清理
如果你只是添加了全局参数,但没删掉之前的warn("RemoveUnusedImports")配置,部分ErrorProne版本可能会出现优先级冲突,导致规则的级别设置异常,最终无法触发警告。建议移除所有针对RemoveUnusedImports的单独级别配置,只保留全局参数。规则被其他配置禁用
检查build.gradle.kts中是否存在disable("RemoveUnusedImports")这类配置,或者有其他插件、全局规则设置间接禁用了该规则。这种情况下,即使提升级别也无法触发警告。ErrorProne版本不兼容
部分旧版本的ErrorProne不支持-XepAllSuggestionsAsWarnings这个全局参数,或者参数名称有差异。可以核对你使用的ErrorProne版本是否支持该参数,必要时升级到兼容版本。
内容的提问来源于stack exchange,提问作者Marat Tim
相关产品推荐
相关产品推荐

