gpt4 book ai didi

java - Sonarqube:缺少以下文件的 blame 信息

转载 作者:IT老高 更新时间:2023-10-28 20:53:53 29 4
gpt4 key购买 nike

在 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 blame 信息?

最佳答案

原因是 JGit bug . JGit 不支持 .gitattributes .我有 ident 在我的.gitattributes .普通控制台git查看源代码,应用 ident$Id$宏,但随后 JGit 忽略了这一点,并看到了一个未提交的差异,实际上并没有。

SonarQube mailing list 上的友好人士帮助了我,并建议使用 standalone JGit command line distribution 进行调试:

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$来 self 所有来源的宏。

这是我使用的 (Bash) 代码,用于删除所有 $Id$宏:

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

关于java - Sonarqube:缺少以下文件的 blame 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37432290/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com