前一段时间我设置了Sonar扫描开发项目。使用 cronjob 每晚调用扫描。有一次我在运行 cronjob 的机器上遇到了问题,并且错过了一些夜间扫描。我从错过的某一天下载了源代码,并使用 Sonar Runner 完成了新的 Sonar 扫描。正如我所料,数据在 Sonar 中显示为最近的扫描,这不是我想要的。我想将该扫描注入(inject)到特定日期,以便我可以填补未运行扫描的日子。我没有在 sonar-project.properties 文件中看到执行此操作的选项。
有没有一种方法可以运行 Sonar 扫描,但在我选择的日期而不是当前日期输入数据,以便它显示在我的 Sonar 时间轴中的适当位置?
最佳答案
我没用过它们,但 Sonar documentation描述了启用历史分析的附加属性。具体来说,就是您需要设置的“sonar.projectDate”属性。
您还没有指定您使用的是哪种 Java 构建技术。我在下面包含了一些示例。
最后,您是否考虑过设置 Jenkins 来启动 Sonar,而不是 cron?运行 Jenkins 的理由很多,但如果您使用 Maven 作为构建工具,Jenkins Sonar plugin使 Sonar 集成变得非常容易。
Maven 示例
mvn clean install -DskipTests=true
mvn -Dsonar.projectDate=2012-09-01 sonar:sonar
ANT 示例
ant -Dsonar.projectDate=2012-09-01 clean sonar
注意:
- 假设您有一个名为“sonar”的目标,用于编译、测试和运行 sonar。
关于java - 在现有分析之前注入(inject) Sonar 分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12327000/