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

Gradle构建如何显示全部错误?为何-Xmaxerrs不生效?

问题原因
  • -Xmaxerrs是javac(Java编译器)的专属参数,并非JVM运行时参数,因此将其放入_JAVA_OPTIONS环境变量会被JVM直接忽略——该环境变量仅用于传递JVM自身识别的参数(比如-Xms/-Xmx这类内存配置参数)。同理-Xdiags:verbose也是javac的专属参数,不适合放在JVM环境变量中。
解决方法

要让编译器输出全部错误,需针对Gradle的编译任务单独配置对应参数,分Java和Kotlin两种场景处理:

1. 配置Java编译任务

在项目根目录的build.gradle(Groovy DSL)或build.gradle.kts(Kotlin DSL)中添加以下配置,调整Java编译器的错误输出上限:

Groovy DSL

tasks.withType(JavaCompile) {
    options.compilerArgs += ['-Xmaxerrs', '5000']
    // 可选:开启详细诊断信息
    options.compilerArgs += ['-Xdiags:verbose']
}

Kotlin DSL

tasks.withType<JavaCompile> {
    options.compilerArgs.addAll(listOf("-Xmaxerrs", "5000"))
    options.compilerArgs.addAll(listOf("-Xdiags:verbose"))
}

2. 配置Kotlin编译任务

由于你使用了Kotlin 1.7.10,Kotlin编译器有独立的参数控制错误输出数量,需单独配置:

Groovy DSL

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile) {
    kotlinOptions {
        maxErrors = 5000
        // 可选:开启详细编译日志
        verbose = true
    }
}

Kotlin DSL

tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
    kotlinOptions {
        maxErrors = 5000
        verbose = true
    }
}

3. 临时命令行方式(无需修改构建脚本)

如果不想修改构建脚本,可通过Gradle命令行参数直接传递配置:

  • Java编译参数:
./gradlew clean build -PcompileJava.options.compilerArgs="-Xmaxerrs 5000"
  • Kotlin编译参数:
./gradlew clean build -Pkotlin.compiler.options.maxErrors=5000

4. 查看完整构建日志文件

如果控制台仍有输出截断,可直接查看Gradle生成的完整构建日志:

  • 默认日志路径:build/reports/build/build.log(路径可能因项目结构略有不同)
  • 或通过命令将所有输出写入文件:
./gradlew clean build > build-full.log 2>&1

之后用文本编辑器打开build-full.log即可查看全部错误信息。

内容的提问来源于stack exchange,提问作者deniss-s

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 05:22:37