Sonarqube:缺少“报告”参数

Posted

技术标签:

【中文标题】Sonarqube:缺少“报告”参数【英文标题】:Sonarqube : The 'report' parameter is missing 【发布时间】:2018-07-26 02:50:52 【问题描述】:

我正在使用 MSBuild。我安装了 Java 8。

我正在运行以下命令:

SonarQube.Scanner.MSBuild.exe begin /k:"ABC" /d:sonar.host.url="http://localhost:9000"  /d:sonar.login="8b839xxxxxxxxxxxxxxxxxxxxxxx6b00125bf92"  /d:sonar.verbose=true

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\msbuild.exe" /t:rebuild

SonarQube.Scanner.MSBuild.exe end /d:sonar.login="8b839xxxxxxxxxxxxxxxxxxxxxxx6b00125bf92"

最后一步失败:

ERROR: Error during SonarQube Scanner execution
ERROR: The 'report' parameter is missing
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
The SonarQube Scanner did not complete successfully
12:53:21.909  Creating a summary markdown file...
12:53:21.918  Post-processing failed. Exit code: 1

MSBuild 版本大于 14。

Java 8 已正确安装。文档表明 Java 8 就足够了。

    您知道可能出了什么问题吗? 在哪里添加 -X 开关?我尝试了所有 3 个语句

更新:我安装了 Java SDK 9。仍然是同样的问题。 更新:使用详细日志记录并使用 /n 命名参数:

INFO: Analysis report generated in 992ms, dir size=4 MB
INFO: Analysis reports compressed in 549ms, zip size=1 MB
INFO: Analysis report generated in C:\ABC\.sonarqube\out\.sonar\scanner-report
DEBUG: Upload report
DEBUG: POST 400 http://localhost:9000/api/ce/submit?projectKey=ABC | time=1023ms
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 54.833s
INFO: Final Memory: 51M/170M
INFO: ------------------------------------------------------------------------
DEBUG: Execution getVersion
DEBUG: Execution stop
ERROR: Error during SonarQube Scanner execution
ERROR: The 'report' parameter is missing
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
Process returned exit code 1
The SonarQube Scanner did not complete successfully
Creating a summary markdown file...
Post-processing failed. Exit code: 1

【问题讨论】:

您的 begin 不包含名称参数 (/n:"Foo")。虽然错误消息似乎与此无关,但我认为该参数是 MSBuild 分析所必需的,因此请尝试添加它以消除可能的错误来源。 嗨,G.Ann,感谢您的更新,我尝试使用 name 参数,但不幸的是仍然遇到。我已经发布了更新的问题,其中包含更多详细信息 仅供参考@Peter PitLock,我已经用尽了我在该主题上的专业知识并被标记为希望能引起更多知识渊博的人的注意。 如果禁用声纳线没有错误? SonarQube.Scanner.MSBuild.exe 的版本号是多少? @G.Ann-SonarSourceTeam - 我以答案的形式添加到这个问题中。一旦您的团队找到解决方案,我将很乐意删除此内容。 【参考方案1】:

我在使用 SonarQube 时遇到过同样的问题,我终于找到了解决方案: 使用评估令牌后需要重新启动声纳服务。

【讨论】:

【参考方案2】:

在我的情况下,SonarQube 7.9.1(与 Helm 一起部署到 Kubernetes 集群)在 Helm 回滚后缺少临时目录 /opt/sonarqube/temp/tc/work/Tomcat/localhost/ROOT。不知道发生了什么。

SonarQube pod 内的日志文件 /opt/sonarqube/logs/web.log 出现此错误:

2021.02.02 06:57:03 WARN  web[AXdZ6l6MParQCncJACv3][o.s.s.w.ServletRequest] Can't read file part for parameter report
java.io.IOException: The temporary upload location [/opt/sonarqube/temp/tc/work/Tomcat/localhost/ROOT] is not valid

修复是执行到 pod 并创建缺少的目录。想知道原因...

【讨论】:

【参考方案3】:

请注意,这不是答案,但我认为此反馈对于回答此问题很有价值。

    我可以通过 POST 请求在 POSTMan 中重现此问题:

http://localhost:9000/api/ce/submit?projectKey=myProjectKey

返回


    "errors": [
        
            "msg": "The 'report' parameter is missing"
        
    ]

您可以通过删除projectKey 查询参数得到类似的错误。我尝试添加 report 查询参数并收到相同的错误:

http://localhost:9000/api/ce/submit?projectKey=brian3016&report=report

鉴于此,我觉得他们的代码有问题。它应该在创建 POST 请求时包含一个报告参数,但它没有这样做。

    详细输出似乎已从使用-X 开关更改为/d:sonar.verbose=true。例如

SonarScanner.MSBuild.exe 开始 /k:"myProjectKey" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="myLogin" /d:sonar.verbose=真的

请注意,详细的日志记录并没有给我任何有价值的见解。

(另请注意,文档目前说使用 SonarQube.Scanner.MSBuild.exe,但详细的记录器告诉我切换到 SonarScanner.MSBuild.exe)

    所以...我们如何将此问题报告给可以解决它的人?他们的documentation 说去 ***。所以我们到了。

    我认为这可能是项目的问题。所以我创建了一个新项目,除了启动模板控制台应用程序之外什么都没有。同样的错误。

【讨论】:

【参考方案4】:

问题在于声纳服务启动。

首先尝试使用 Ctrl+c 停止 SonarStart.bat,然后尝试打开 localhost:9000(或您配置的声纳服务器的任何端口)。

如果它仍然打开,请转到任务管理器并搜索 wrapper.exe 服务并停止该服务。如果没有找到服务,则转到:

Task manager>Details> and stop all java.exe process. 

注意:如果你运行很多Java应用程序,右键java.exe选择goto服务,只停止那些属于AppX deployment.services的java.exe

现在以管理员身份启动 sonarstart.bat..

【讨论】:

【参考方案5】:

检查你是否有足够的内存 例如:免费 -m 就我而言,我必须升级内存。

【讨论】:

【参考方案6】:

今天我在使用 jenkins 扫描代码时遇到了同样的错误。 POST /api/ce/submit 时出现错误并通过添加 sonar.verbose=true 获取 400 代码 我使用以下步骤来检查原因

    首先重启 sonarqube => 失败 使用“du -sh”检查报告文件大小 get 108m and DB server support 1G => failed 登录sonar-qube服务器,查看access.log、web.log等日志,终于找到错误原因“处理多部分/表单数据请求失败。设备上没有剩余空间”,所以我检查了服务器通过命令“df -h”,一些设备被 100% 使用 => 所以我删除了一些不使用的文件并修复它!!!

【讨论】:

以上是关于Sonarqube:缺少“报告”参数的主要内容,如果未能解决你的问题,请参考以下文章

SonarQube 覆盖缺少 Jacoco 报告涵盖的一些行

SonarQube with Jest and react - 覆盖 0 条新线路

缺少必需的参数:/ key:[Sonarqube项目密钥]

代码质量SonarQube原理与实践

sonarqube+sonar_scanner+jenkins执行代码检查

sonarqube+sonar_scanner+jenkins执行代码检查