我在RHEL 7.x上运行SonarQube 7.1的社区版。当我运行声纳扫描仪-X时,我看到后端的输出如下:
hello.py indexed with language 'py'
hello.java indexed with language 'java'
hello.cpp indexed with language 'null'
hello.c indexed with language 'null'
我希望看到"用语言cpp索引"和"用语言c"索引。
当我转到Web UI时,请参阅项目目录中的hello.py和hello.java。但我没有看到.cpp或.c代码的引用。我希望在Web UI中看到.c和.cpp文件。这从来没有奏效,所以让我就我所做的事情提供一些背景知识。
要安装.cpp和.c代码的插件,我下载了一个版本号最高的.zip文件。我最初试图在本地SonarQube安装上找到它,但URL" http://localhost:9000/static/cpp/build-wrapper-linux-x86.zip" (以及我自己部署的衍生产品)对我不起作用。作为旁注,我很好奇是否有其他路径以及为什么这条路径会导致404或"没有页面可以显示"我的网络浏览器中的消息。
在解压缩C ++和C的插件后,我运行(从命令提示符下):build-wrapper-linux-x86-64 --out-dir bw_output make
我也跑了(从命令提示符下):build-wrapper-linux-x86-64 --out-dir bw_output make sonar-scanner
两者都没有错误。似乎SonarQube没有分析.c或.cpp源代码。我基于两件事情。一,当在同一目录中分析其他文件时,Web UI中缺少输出。二,后端的输出是指语言' null'对于.c和.cpp文件。在配置SonarQube以分析C和C ++代码时我做错了什么?
答案 0 :(得分:2)
你说你下载了SonarCFamily并爆炸了罐子。这不是你想要做的。相反,您应该在$SONARQUBE_HOME/extensions/plugins
中安装完整的jar。然后下载URL将对您有用,和您的分析将识别并提供C文件的规则。
然而,SonarCFamily不是免费代码分析器之一。它是Developer Edition($)的一部分,需要付费许可证。
答案 1 :(得分:0)
SonarCFamily的替代方案是sonar-cxx plugin
但据我所知,它只能用其他静态/动态工具的结果进行分析。我和Valgrind,Dr.Memory,Bullseye一起使用。