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

SonarQube 6.7.2 Maven构建失败:无法存储报告源文件

解决Maven结合SonarQube构建时的"Operation not permitted"错误

我刚接触SonarQube,第一次在项目里用它,用Maven构建的时候碰到了下面的权限错误,折腾了好久没搞定,求帮忙:

[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar (default-cli) on project channels: Unable to store file source in the report: /home/zeeshan/xyz/Project/Bitbucket/channels/target/sonar/scanner-report/source-178.txt (Operation not permitted) -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar (default-cli) on project channels: Unable to store file source in the report 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216) 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:108) 
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:76) 
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:116) 
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:361) 
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:155) 
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:584) 
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:213) 
at org.apache.maven.cli.MavenCli.main(MavenCli.java:157) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.MojoExecutionException: Unable to store file source in the report 
at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute(ScannerBootstrapper.java:65) 
at org.sonarsource.scanner.maven.SonarQubeMojo.execute(SonarQubeMojo.java:108) 
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:133) 
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
... 19 more 
Caused by: java.lang.IllegalStateException: Unable to store file source in the report 
at org.sonar.scanner.report.SourcePublisher.publish(SourcePublisher.java:52) 
at org.sonar.scanner.report.ReportPublisher.generateReportFile(ReportPublisher.java:149) 
at org.sonar.scanner.report.ReportPublisher.execute(ReportPublisher.java:130) 
at org.sonar.scanner.phases.PublishPhaseExecutor.publishReportJob(PublishPhaseExecutor.java:73) 
at org.sonar.scanner.phases.PublishPhaseExecutor.executeOnRoot(PublishPhaseExecutor.java:55) 
at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:93) 
at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:180) 
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135) 
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121) 
at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:288) 
at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:283) 
at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:261) 
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135) 
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121) 
at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48) 
at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84) 
at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135) 
at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121) 
at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:121) 
at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116) 
at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:71) 
at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498)

问题分析

这个错误的核心是当前运行Maven的用户没有权限写入指定的SonarQube扫描报告目录,也就是/home/zeeshan/xyz/Project/Bitbucket/channels/target/sonar/scanner-report/,系统返回"Operation not permitted"明确指向了权限问题。

解决步骤

按优先级从高到低尝试下面的方法:

  • 检查并修复目录权限
    先看看目标目录的权限情况,执行命令:

    ls -ld /home/zeeshan/xyz/Project/Bitbucket/channels/target/sonar/scanner-report/
    

    确保当前用户(比如你用的zeeshan)对这个目录有读写权限。如果权限不够,直接修改权限:

    chmod -R u+rw /home/zeeshan/xyz/Project/Bitbucket/channels/target/sonar/
    

    如果是目录所有者不对,就修改归属:

    sudo chown -R zeeshan:zeeshan /home/zeeshan/xyz/Project/Bitbucket/channels/target/sonar/
    
  • 清理旧缓存后重新构建
    有时候旧的SonarQube缓存文件可能残留权限问题,先清理整个target目录:

    mvn clean
    

    然后再重新运行SonarQube扫描:

    mvn sonar:sonar
    
  • 检查系统安全工具限制
    如果是Linux系统,SELinux或者AppArmor这类安全工具可能会阻止Maven写入目录。可以临时关闭SELinux测试:

    sudo setenforce 0
    

    如果测试后能正常运行,记得不要一直关闭SELinux,最好配置对应的规则允许Maven访问该目录,具体可以参考系统文档添加自定义规则。

  • 升级SonarQube Maven插件版本
    你当前用的3.4.0.905版本比较老旧了,可能存在一些已知的权限处理问题。建议升级到最新的稳定版,在项目的pom.xml里修改插件配置:

    <plugin>
      <groupId>org.sonarsource.scanner.maven</groupId>
      <artifactId>sonar-maven-plugin</artifactId>
      <version>3.10.0.2594</version> <!-- 可以去SonarQube官网查最新稳定版 -->
    </plugin>
    

    修改后重新执行扫描命令试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:23:06