You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gradle中配置-Xmaxerrs/-Xmaxwarns显示全部ErrorProne消息

解决Gradle ErrorProne仅输出前100条错误/警告的问题

问题核心

你遇到的是javac编译器默认限制仅显示前100条错误和警告的问题,而非Gradle本身的限制。之前的配置无效,是因为参数传递方式错误——将参数与值写在同一个字符串中,导致javac无法识别。

可行解决方案

1. 修正build.gradle.kts的编译器参数配置

将-Xmaxerrs(最大错误显示数)和-Xmaxwarns(最大警告显示数)作为独立参数添加到JavaCompile任务中:

import net.ltgt.gradle.errorprone.errorprone

plugins {
  id("net.ltgt.errorprone") version "3.1.0" apply false
}

subprojects {
  plugins.withType<JavaPlugin> {
    apply(plugin = "net.ltgt.errorprone")
    dependencies {     
      add("errorprone", "com.google.errorprone:error_prone_core:2.16")
    }
    tasks.withType<JavaCompile>().configureEach {
      options.errorprone {
        disableWarningsInGeneratedCode.set(true)
      }
      // 关键:分开传递参数与数值,javac才能正确识别
      options.compilerArgs.addAll(
        listOf(
          "-Xmaxerrs", "1000", // 可根据实际需要调整数值
          "-Xmaxwarns", "1000"
        )
      )
    }
  }
}

2. 命令行临时传递参数(无需修改构建文件)

如果不想改动构建配置,可在执行命令时通过-P参数传递编译器参数:

./gradlew build -x test -Porg.gradle.java.compile.options.compilerArgs="-Xmaxerrs=1000,-Xmaxwarns=1000"

3. 优化bash统计脚本(可选)

原脚本先将全部输出存入变量,当输出量极大时可能出现性能问题,改为实时过滤统计更高效:

#!/bin/bash

# 实时过滤错误/警告并统计
./gradlew build -x test 2>&1 | grep -o -P '(error|warning):\s*\[([^]]+)\]' | sort | uniq -c > error_counts.txt

# 生成格式化统计表格
echo "| 错误/警告类型               | 出现次数 |" > error_mapping.txt
echo "|------------------------------|----------|" >> error_mapping.txt
while read -r count type; do
    printf "| %-30s | %-8s |\n" "$type" "$count" >> error_mapping.txt
done < error_counts.txt

验证方法

重新执行构建脚本后,检查error_mapping.txt中的统计总数是否与控制台提示的262条错误、227条警告匹配。

内容的提问来源于stack exchange,提问作者Peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 14:05:40