Sonarqube:以下文件缺少归咎信息
Missing blame information for the following files
SonarQube在分析过程中收到警告。
[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 blame信息?
回答:
原因是JGit错误。JGit不支持.gitattributes
。我有ident
我的.gitattributes
。平原控制台git
签出的来源,适用ident
于$Id$
宏,但随后JGit忽略了,看到没被提交的,那里居然没有一个差异。
SonarQube邮件列表上的友好人员帮助了我,并建议使用独立的JGit命令行分发进行调试:
chmod +x /where/is/org.eclipse.jgit.pgm-<version>-r.sh/where/is/org.eclipse.jgit.pgm-<version>-r.sh blame -w /path/to/offending/file
这个特定的JGit错误5年没有解决,我也不希望很快解决,因此我$Id$
从所有来源中删除了这些宏。
这是我用来删除所有$Id$
宏的(Bash)代码:
find */src -name "*.java" | xargs -n 1 sed -i '/$Id.*$/d'find */src -name "*.java" | xargs git add
git commit -m "Remove $Id$ macros"
git push
以上是 Sonarqube:以下文件缺少归咎信息 的全部内容, 来源链接: utcz.com/qa/435539.html