Jenkins Windows节点cov-commit-defects失败:无法读取models.j文件
Coverity cov-commit-defects 报错:找不到models.j文件(实际仅存在models文件)
问题详情
在Windows环境下完成Coverity分析后,执行cov-commit-defects提交缺陷时失败,报错提示找不到Linux格式路径下的models.j文件,但实际目录中仅存在models文件。
执行的命令
分析命令:
"C:\Program Files\Coverity\Coverity Static Analysis"\bin\cov-analyze.exe --dir Y:\myPath\imdir
提交命令:
"C:\Program Files\Coverity\Coverity Static Analysis"\bin\cov-commit-defects.exe --dir Y:\myPath\imdir --host coverity.personal.com --port 8080 --stream testing --encryption required --auth-key-file "C:\Program Files\Coverity\Coverity Static Analysis"\config\auth-key.txt --on-new-cert trust --description description
错误日志
09:56:34 Connecting to server coverity.personal.com:9090 09:56:35 Connection is encrypted. 09:56:37 Elapsed time: 00:00:02 09:56:37 Preparing to load derived models: cannot read Y:/myPath/imdir/output/models.j: open: The system cannot find the file specified.
解决建议
重新执行完整Coverity流程:如果
imdir目录是从Linux环境复制而来,或分析阶段混合了跨平台路径配置,会导致中间文件格式不兼容。在Windows环境下重新执行构建捕获和分析步骤,确保生成的中间文件适配Windows路径规则:# 重新执行构建捕获(替换<你的构建命令>为实际编译命令,如msbuild、make等) "C:\Program Files\Coverity\Coverity Static Analysis"\bin\cov-build.exe --dir Y:\myPath\imdir <你的构建命令> # 重新执行分析 "C:\Program Files\Coverity\Coverity Static Analysis"\bin\cov-analyze.exe --dir Y:\myPath\imdir临时重命名/创建符号链接:作为临时 workaround,在
output目录下将models文件重命名为models.j,或创建符号链接(需管理员权限执行):# 重命名文件 ren Y:\myPath\imdir\output\models models.j # 或创建符号链接(推荐,避免文件重复) mklink Y:\myPath\imdir\output\models.j Y:\myPath\imdir\output\models修正命令中的路径格式:确保所有命令中的路径统一使用Windows格式的反斜杠(
\),避免混合Linux斜杠(/);同时修正auth-key-file的路径引号问题(原命令中引号未包裹完整路径):"C:\Program Files\Coverity\Coverity Static Analysis"\bin\cov-commit-defects.exe --dir Y:\myPath\imdir --host coverity.personal.com --port 8080 --stream testing --encryption required --auth-key-file "C:\Program Files\Coverity\Coverity Static Analysis\config\auth-key.txt" --on-new-cert trust --description description
内容的提问来源于stack exchange,提问作者R_SS
相关产品推荐
相关产品推荐

