3

不久前,我设置Sonar来扫描一个开发项目。使用 cronjob 每晚调用扫描。有一次,我遇到了运行 cronjob 的机器的问题,并且错过了一些夜间扫描。我从错过的某一天下载了源代码,并使用 Sonar Runner 完成了新的声纳扫描。正如我所料,Sonar 中的数据显示为最近的扫描,这不是我想要的。我想将该扫描注入特定日期,以便填写未运行扫描的日期。我在 sonar-project.properties 文件中没有看到执行此操作的选项。

有没有一种方法可以运行声纳扫描,但在我选择的日期而不是当前日期输入数据,以便它显示在我的声纳时间线中的适当位置?

4

2 回答 2

5

我没有使用过它们,但Sonar 文档描述了可以进行历史分析的附加属性。具体来说,它是您需要设置的“sonar.projectDate”属性。

您尚未指定您正在使用哪种 Java 构建技术。我在下面包含了一些示例。

最后,您是否考虑过设置 Jenkins 来启动 Sonar,而不是 cron?运行 Jenkins 有很多充分的理由,但是如果您使用 Maven 作为构建工具,Jenkins Sonar 插件使 Sonar 集成变得非常容易。

Maven 示例

mvn clean install -DskipTests=true
mvn -Dsonar.projectDate=2012-09-01 sonar:sonar

蚂蚁示例

ant -Dsonar.projectDate=2012-09-01 clean sonar

笔记:

  • 这假设您有一个名为“声纳”的目标来编译、测试和运行声纳。
于 2012-09-08T11:03:22.277 回答
1

你不能这样做。虽然有文档显示如何设置扫描日期,但这仅适用于回顾性扫描,并且只能按时间顺序进行。您不能将扫描插入比最近的时间点更早的时间点。我认为,您可以删除最近的扫描,直到适合您的追溯日期,但您希望在提交之前对其进行测试。

我的建议是不要担心。无论如何,声纳是一个近似工具,你应该能够处理奇怪的异常。

于 2015-10-08T20:50:11.413 回答