我在SonarQube分析期间收到Missing blame information for the following files
警告。
[INFO] [22:19:57.714] Sensor SCM Sensor
[INFO] [22:19:57.715] SCM provider for this project is: git
[INFO] [22:19:57.715] 48 files to be analyzed
[INFO] [22:19:58.448] 0/48 files analyzed
[WARN] [22:19:58.448] Missing blame information for the following files:
(snip 48 lines)
[WARN] [22:19:58.449] This may lead to missing/broken features in SonarQube
[INFO] [22:19:58.449] Sensor SCM Sensor (done) | time=735ms
我使用的是SonarQube 5.5,分析是由Maven在Jenkins的一个多模块Java项目中完成的。安装了Git插件1.2。
在bash shell中对任何有问题的文件手动运行git blame,都会得到预期的输出。
我发现的相关问题都是关于SVN的,我的问题是Git。
如何获取Sonarqube上的git责备信息?
5条答案
按热度按时间wgx48brx1#
原因是一个JGit bug。JGit不支持
.gitattributes
。我的.gitattributes
中有ident
。普通控制台git
checkout 了源代码,在$Id$
宏上应用了ident
,但JGit忽略了这一点,并看到了一个未提交的差异,实际上并没有。SonarQube邮件列表中的友好人员帮助我解决了这个问题,并建议使用独立的JGit命令行发行版进行调试:
这个特殊的JGit错误已经超过5年没有得到解决,我不希望它会很快得到解决,所以我从我所有的源代码中删除了
$Id$
宏。这是我用来删除所有
$Id$
宏的(Bash)代码:zlhcx6iw2#
我遇到了这个问题与建设停止工作后,声纳升级。
我的问题是Jenkins作业被配置为在从git拉取时进行Shallow Clone。这没有拉取足够的历史记录,所以Sonar 5.6.6无法进行分析,因为在shallow副本中没有包含责备信息。我在运行Sonar时使用了 -X 选项来查看它阻塞的实际提交次数。
我是我的情况下,我只是取消选中了浅层复制复选框和砰,它再次工作(虽然更慢)!x1c 0d1x
f2uvfpb93#
我也遇到过类似的问题:我的项目中的一个文件是在生成过程中创建的,并且没有存储在源代码管理中。在我的例子中,它是
api.json
。在Team City的SonarQube runner构建步骤中,我将此文件添加到了附加参数中的排除项中
错误消失了。
xzv2uavs4#
对于来自Google的用户:当SonarLint插件连接到Sonar服务器时,也可能在IntelliJ中看到
Missing blame information for the following files
。如果在运行
mvn sonar:sonar
时有未跟踪的文件或未提交的更改,则这些文件将被列为丢失的责任信息。现在,我的项目在SonarQube Web界面中显示了一个失败的质量门,但下次在CI管道中运行分析时,该问题应该会消失。
30byixjq5#
对于这个案例还有另一个解决方案解决了我的问题。
之后,Docker将询问您的企业用户和密码,问题就解决了