Ubuntu18.04下Vera++生成SonarQube兼容报告遇脚本缺失求助
解决vera++Report2checkstyleReport.perl找不到的问题
是的,你遇到的问题很明确:vera++Report2checkstyleReport.perl不是vera++默认安装包的一部分,它是一个专门用来将vera++的输出转换为SonarQube兼容的Checkstyle格式的配套脚本,需要你单独获取。下面是完整的解决步骤:
步骤1:获取转换脚本
这个脚本通常可以从两个地方获取:
- 如果你正在使用sonar-cxx插件(从你的命令路径来看确实是),可以在sonar-cxx插件的源码仓库的工具目录中找到它;
- 或者直接从vera++的官方配套工具资源中获取。
你可以手动创建这个脚本,或者复制对应文件到你的工作目录中(比如你执行命令的目录,或者某个在PATH里的目录)。
步骤2:赋予脚本执行权限
拿到脚本后,先确保它有可执行权限,执行以下命令:
chmod +x vera++Report2checkstyleReport.perl
步骤3:修正你的执行命令
有两个需要注意的地方:
- 如果你没有把脚本放到
PATH环境变量包含的目录里,需要在命令中指定脚本的完整绝对路径(比如/home/your-user/scripts/vera++Report2checkstyleReport.perl); - 你的
find命令正则表达式有问题,当前的"\.cc\|\.hh"会匹配任何包含.cc或.hh的字符串(比如test.cc.txt也会被匹配),应该修改为匹配文件后缀的正则:"\.(cc|hh)$"。
修正后的完整命令示例(假设脚本放在当前目录):
bash -c 'find src -regex "\.(cc|hh)$" | vera++ - -showrules -nodup 2>&1 | ./vera++Report2checkstyleReport.perl > /sonar-test/valgrind-test/sonar-cxx/sonar-cxx-plugin/src/samples/SampleProject2/build/vera++-report.xml'
额外注意事项
- 确保你的Ubuntu系统已经安装了Perl,执行
sudo apt update && sudo apt install perl即可完成安装; - 验证vera++是否正常工作:执行
vera++ --version确认版本是1.2.1; - 如果转换后的报告还是有问题,可以检查vera的输出是否正常,先去掉管道到脚本的部分,直接查看vera的输出是否符合预期。
内容的提问来源于stack exchange,提问作者user4948798
相关产品推荐
相关产品推荐

