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

运行sonar-scanner.bat扫描多Java应用时触发NullPointerException异常求助

问题:Sonar Scanner扫描Java应用时抛出NullPointerException

环境信息

  • SonarQube版本:sonarqube-7.8
  • Sonar Scanner版本:sonar-scanner-cli-4.8.0.2856-windows
  • 操作场景:Windows终端执行sonar-scanner.bat扫描多个Java应用,已配置好Sonar Scanner路径
  • 需求:在本地SonarQube(localhost:9000)获取应用测试报告

报错信息

INFO: EXECUTION FAILURE INFO:
------------------------------------------------------------------------ INFO: Total time: 25.283s INFO: Final Memory: 15M/57M INFO:
------------------------------------------------------------------------ ERROR: Error during SonarScanner execution
java.lang.NullPointerException
at org.sonarsource.scm.git.GitScmProviderBefore77.revisionId(GitScmProviderBefore77.java:173)
at org.sonar.scanner.scm.ScmRevisionImpl.get(ScmRevisionImpl.java:62)
at org.sonar.scanner.report.MetadataPublisher.addScmInformation(MetadataPublisher.java:153)
at org.sonar.scanner.report.MetadataPublisher.publish(MetadataPublisher.java:105)
at org.sonar.scanner.report.ReportPublisher.generateReportFile(ReportPublisher.java:152)
at org.sonar.scanner.report.ReportPublisher.execute(ReportPublisher.java:138)
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:366)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
at org.sonar.scanner.bootstrap.GlobalContainer.doAfterStart(GlobalContainer.java:141)
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:136)
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:122)
at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:73)
at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:67)
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown
Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
at com.sun.proxy.$Proxy0.execute(Unknown Source)
at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
at org.sonarsource.scanner.cli.Main.execute(Main.java:126)
at org.sonarsource.scanner.cli.Main.execute(Main.java:81)
at org.sonarsource.scanner.cli.Main.main(Main.java:62) ERROR: ERROR: Re-run SonarScanner using the -X switch to enable full debug
logging.

解决方案

  • 禁用SCM检测:在项目的sonar-project.properties文件中添加sonar.scm.disabled=true,跳过Git相关的SCM信息收集,直接绕过空指针触发点。
  • 检查Git仓库有效性:确保被扫描的Java应用目录是完整的Git仓库,执行git status验证仓库状态,若.git目录损坏,重新初始化或修复仓库。
  • 调整版本兼容性:Sonar Scanner 4.8.0与SonarQube 7.8存在版本适配问题,可尝试降级Sonar Scanner至3.x系列(如3.3.0.1492),或升级SonarQube至支持该Scanner版本的LTS版本(注意SonarQube 7.8已停止维护,建议升级到长期支持版本)。
  • 指定Git可执行路径:若Git未加入系统环境变量,在Sonar Scanner的配置文件sonar-scanner.properties中添加sonar.scm.git.executable=C:/Program Files/Git/bin/git.exe(根据实际Git安装路径调整),确保Scanner能调用Git命令。
  • 清理扫描缓存:删除%USERPROFILE%/.sonar/cache目录下的缓存文件,消除旧缓存导致的异常,重新执行扫描。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:01:51